JsonPathExtract#
Действие JsonPathExtract позволяет извлекать содержимое элемента JSON объекта с использованием нотации JSON-path (документация на библиотеку приведена на сайте, для проверки JsonPass рекомендуется воспользоваться ссылкой http://jsonpath.herokuapp.com/.
Параметры:
Название |
Обязательность |
Допустимые значения |
Описание |
|---|---|---|---|
path |
+ |
Строка |
Выражение json-path, обязательный параметр |
expectedResult |
- |
имя java-класса |
Имя java класса, соответствующего ожидаемому результату, по умолчанию java.lang.String |
allowNotFound |
- |
true/false |
В случае указания значения true, если искомый элемент не найден, то возвращается пустая строка. Иначе выдается ошибка. По умолчанию - true. |
Пример:
service:
service_static:
- id: 1
url: /sample
listen:
- port: 8083
chains:
request_chains:
- actions:
- action: JsonPathExtract
params:
path: "$.address.streetAddress"
actions:
- action: SetVarFromMessage
params:
variable: $clj_street
message: $clj_request_body
optional:
response_body: "OK"
response_code: 200
response_headers:
- name: X-Header
value: "$clj_street"
В приведенном примере мы извлекаем из приходящего в теле запроса JSON элемент streetAddress, далее передаем результат в действие SetVarFromMessage, в котором помещаем его значение в переменную clj_street. Данная переменная используется для заполнения заголовка X-Header, который возвращается клиенту в ответе.