Настройка постобработчика#

Постобработчик postprocessor_error предназначен для формирования сообщения об ошибке для клиента по указанному шаблону (см. параметр pattern_file) и по заданным правилам (см. параметр rules_file).

postprocessor_error - параметры#

Название

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

Описание

Возможные значения

Значение по умолчанию

code

Опциональный

Последовательность кодов ошибок, на основании которых будут сгенерированы сообщения для клиента

Последовательность целочисленных значений

—

pattern_file

Обязательный (если custom_pattern_file не задан)

Файл шаблона, который будет использован в качестве тела ответа. При добавлении нового профиля данные шаблоны «подтягиваются» в профиль и находятся в директории: /sowa/[имя профиля]/common/error-templates

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

Обязательный (если pattern_file не задан)

Путь к файлу шаблона (относительно директории с custom ресурсами), который будет использован в качестве тела ответа

Строковое значение

—

rules_file

Опциональный

Файл с правилами, описывающий, как заполнять файл шаблона. Подробнее в разделе «Создание файла с правилами»

Строковое значение

rules.yml

content_type

Опциональный

Тип содержимого для заголовка ответа

Строковое значение

—

grpc_error_processing

Опциональный

При включении изменяет поведение постпроцессора — позволяет изменять заголовки grpc-message и grpc-status вместо тела ответа и кода ответа соответственно

true, false

false

skip_for_upstream_statuses

Опциональный

Регулярное выражение для статусов ответов, по которым не будет использовано преобразование ответов от backend. Директива применима и работает только совместно с валидаторами validator_json и validator_xsd

Строковое значение

—

handle_upstream_errors

Опциональный

Необходимо ли обрабатывать ошибки от upstream. Если false, то ошибки от upstream (статус код от upstream больше или равен 300) не обрабатываются постпроцессором

true, false

true

handle_upstream_errors_status

Опциональный

Список статусов, ограничивающий директиву handle_upstream_errors. Используется, если handle_upstream_errors: true

Последовательность целочисленных значений

—

redirect

Обязательный (если pattern_file не задан и custom_pattern_file не задан и rules_file не задан)

Параметры перенаправления

Параметры, описанные в разделе «postprocessor_error - redirect»

—

postprocessor_error - redirect#

Название

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

Описание

Возможные значения

Значение по умолчанию

code

Обязательный

Статус код перенаправления

301, 302, 303, 307, 308

—

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 правилами).