Настройка постобработчика#
Постобработчик postprocessor_error предназначен для формирования сообщения об ошибке для клиента по указанному шаблону (см. параметр pattern_file) и по заданным правилам (см. параметр rules_file).
Опциональные параметры:
postprocessor_errorТип параметра: группа параметров и их значения.
По умолчанию: не имеет значения по умолчанию.
Опциональные параметры:
code
В значении параметра определяется последовательность кодов ошибок, на основании которых будут сгенерированы сообщения для клиента.
code: - 403 - 404 - 500 - 502Тип параметра: последовательность целочисленных значений.
По умолчанию: не имеет значения по умолчанию.
pattern_file
В значении параметра указывается файл шаблона, который будет использован в качестве тела ответа.
pattern_file: errors_schema_v_1.0.jsonПри добавлении нового профиля данные шаблоны «подтягиваются» в профиль и находятся в директории: /sowa/[имя профиля]/common/error-templates. На основе данных шаблонов можно создавать необходимые файлы и использовать в ресурсах через custom_pattern_file.
Обязательно в случае:
custom_pattern_fileis None.
Тип параметра:
OSWP_Error_template.json;
abo_errors_schema.json;
default_json.json;
errors_schema.json;
errors_schema_v_1.0.json;
vrvr_error_template.json;
workflow_error_schema.json.
По умолчанию: не имеет значения по умолчанию.
custom_pattern_file
В значении параметра указывается путь к файлу шаблона (относительно директории с custom ресурсами), который будет использован в качестве тела ответа.
custom_pattern_file: templates/error_schema.jsonПри добавлении нового профиля данные шаблоны «подтягиваются» в профиль и находятся в директории: /sowa/[имя профиля]/common/error-templates. На основе данных шаблонов можно создавать необходимые файлы и использовать в ресурсах через custom_pattern_file.
Обязательно в случае:
pattern_fileis None.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
rules_file
В значении параметра задается файл с правилами, описывающий, как заполнять файл шаблона. По умолчанию — файл правил из системных ресурсов.
rules_file: rules.ymlПодробнее в разделе «Создание файла с правилами».
Тип параметра: строковое значение.
По умолчанию: Файл rules.yml.
content_type
В значении параметра определяется тип содержимого для заголовка ответа.
content_type: application/json;charset=UTF-8Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
grpc_error_processing
При включении изменяет поведение постпроцессора — позволяет изменять заголовки grpc-message и grpc-status вместо тела ответа и кода ответа соответственно.
Тип параметра:
true;
false.
По умолчанию:
grpc_error_processing: falseskip_for_upstream_statuses
В значении параметра указывается регулярное выражение для статусов ответов, по которым не будет использовано преобразование ответов от backend. Директива применима и работает только совместно с валидаторами validator_json и validator_xsd.
Тип параметра: строковое значение.
По умолчанию: не имеет значения по умолчанию.
handle_upstream_errors
В значении параметра указывается, необходимо ли обрабатывать ошибки от upstream. Если
handle_upstream_errors: false, то ошибки от upstream (статус код от upstream больше или равен 300) не обрабатываются постпроцессором.
Тип параметра:
true;
false.
По умолчанию:
handle_upstream_errors: truehandle_upstream_errors_status
В значении параметра указывается список статусов, ограничивающий директиву handle_upstream_errors.
Используется в случае:
handle_upstream_errors: trueТип параметра: последовательность целочисленных значений.
По умолчанию: не имеет значения по умолчанию.
redirect
Обязательно в случае:
custom_pattern_fileis None;custom_pattern_fileis None;rules_fileis None.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
Обязательные параметры:
code
В значении параметра указывается статус код перенаправления.
Тип параметра:
301;
302;
303;
307;
По умолчанию: не имеет значения по умолчанию.
url
В значении параметра указывается url перенаправления, который будет проставлен в заголовке ответа location.
Тип параметра: текстовое значение.
По умолчанию: не имеет значения по умолчанию.
Пример использования параметра postprocessor_error:
postprocessors:
postprocessor_error:
code:
- 403
- 404
- 500
- 502
pattern_file: errors_schema_v_1.0.json
rules_file: rules.yml
content_type: application/json;charset=UTF-8
Формируемое сообщение об ошибке представляет собой структурированный файл любого формата (JSON, XML, etc.) с заранее заданными подсказками. Значения подсказок заполняются на основании заданных правил.
Например:
{
"errorCode" : {errorCode},
"errorMessage": {errorMessage}
}
Подсказки, заключенные в фигурные скобки: {errorCode} и {errorMessage}, описываются в файле rules.yml (см. раздел Создание файла c правилами).