JsonPathExtract#

Действие JsonPathExtract позволяет извлекать содержимое элемента JSON объекта с использованием нотации JSON-path (документация на библиотеку приведена на сайте, для проверки JsonPass рекомендуется воспользоваться ссылкой http://jsonpath.herokuapp.com/.

Параметры:

Название

Обязательность

Допустимые значения

Описание

path

+

Строка

Выражение json-path, обязательный параметр

expectedResult

-

имя java-класса

Имя java класса, соответствующего ожидаемому результату, по умолчанию java.lang.String

allowNotFound

-

true/false

В случае указания значения true, если искомый элемент не найден, то возвращается пустая строка. Иначе выдается ошибка. По умолчанию — true.

expressions

-

Список значений

Параметр, аналогичный path, указанный в виде списка.

varReplace

-

Строка

Список переменных, которые нужно вычислить и заменить в expressions и path.

allowNotFound

-

true/false

В случае указания значения 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, который возвращается клиенту в ответе.