JsonPathExtractToVars#

Действие аналогично действию JsonPathExtract, однако не имеет выхода в виде сообщения, так как результатом выполнения являются заполненные значения указанных переменных.

Параметры:

Название

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

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

Описание

expressions

+

Список

Обязательный параметр, содержащий список правил поиска и заполнения переменных

Каждое правило из списка expressions имеет следующие элементы:

Название

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

Описание

path

Строка

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

expectedResult

имя java-класса

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

allowNotFound

true/false

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

var

строка

Имя переменной nginx (может как использоваться префикс $, так и не использоваться)

Пример:

service:
 service_static:
   - id: 1
     url: /sample
     listen:
       - port: 8083
     chains:
      request_chains:
       - actions:
         - action: JsonPathExtractToVars
           params:
             expressions:
               - path: "$.address.streetAddress"
                 var: clj_street
         - action: JsonPathExtractToVars
           params:
             expressions:
               - path: "$.address.city"
                 var: clj_city
         message: $clj_request_body
     optional:
       response_body: "OK"
       response_code: 200
     response_headers:
       - name: X-Header-Street
         value: "clj_street"
       - name: X-Header-City
         value: "clj_city"

В приведенном примере мы извлекаем из приходящего в теле запроса JSON элементы streetAddress и city и помещаем их в переменные clj_street и clj_city. Значения этих переменных используются для заполнения заголовков X-Header-Street и X-Header-City, которые отправляются клиенту в ответе.