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

Постобработчик 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_file is 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_file is 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: false
    
    • skip_for_upstream_statuses

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

    Тип параметра: строковое значение.

    По умолчанию: не имеет значения по умолчанию.

    • handle_upstream_errors

    В значении параметра указывается, необходимо ли обрабатывать ошибки от upstream. Если

    handle_upstream_errors: false
    

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

    Тип параметра:

    • true;

    • false.

    По умолчанию:

    handle_upstream_errors: true
    
    • handle_upstream_errors_status

    В значении параметра указывается список статусов, ограничивающий директиву handle_upstream_errors.

    Используется в случае:

    handle_upstream_errors: true
    

    Тип параметра: последовательность целочисленных значений.

    По умолчанию: не имеет значения по умолчанию.

    • redirect

    Обязательно в случае:

    • custom_pattern_file is None;

    • custom_pattern_file is None;

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