JsonTransformer#

Действие JsonTransformer предназначено для изменения тела JSON-сообщения.

На текущий момент возможно только удаление из тела JSON-сообщения элементов, не прошедших валидацию.

Параметры:

Название

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

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

Описание

elements_to_remove

+

clj_validation_error_text

Обязательный параметр, содержащий в себе перечень элементов для удаления. На текущий момент поддерживается только формат ошибок валидатора, хранящийся в переменной clj_validation_error_text (переменная, представляющая собой сериализованный объект со списком ошибок в base64)

Рассмотрим пример:

chains:
  request_chains:
    - actions:
      - action: JsonValidation
        params:
          validation_schema: {type: file, path: schemes/json/PAYMENTS/rq.json}
          action: ignore
        conditions:
          - var: $request_method
            operator: 'in'
            val: POST
      - action: JsonTransformer
        params: {elements_to_remove: $clj_validation_error_text}
        conditions:
          - {operator: '!=', val: '', var: $clj_validation_error_text}
      message: $clj_request_body
  response_chains:
    - actions:
      - action: SetVar
        params:
          variables:
            - name: clj_trimmed_body
              value: ""
      - action: JsonValidation
        params:
          validation_schema: {type: file, path: schemes/json/PAYMENTS/rq.json}
          action: ignore
      - action: JsonTransformer
        params: {elements_to_remove: $clj_validation_error_text}
        conditions:
          - {operator: '!=', val: '', var: $clj_validation_error_text}
      message: $clj_response_body
  response_chain_properties:
    use_post_processor: true
    resp_gen_modify: 'on'

В приведенном примере осуществляется удаление всех запрещенных элементов, не соответствующих схеме, как для запросов, так и для ответов. Более подробно данный пример рассматривается в вариантах использования - Удаление запрещенных JSON-элементов.

Заполняемые переменные

По результатам своего выполнения, действие JsonTransformer может заполнять следующие переменные:

  • clj_trimmed_body - тело сообщения после удаления из него запрещенных элементов;

  • clj_validation_error_code - код ошибки;

  • clj_validation_error_description - расшифровка кода ошибки.