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 - расшифровка кода ошибки.