OpenApiValidation#

Действие OpenApiValidation предназначено для валидации запроса/ответа по спецификации Swagger v2 или OpenAPI v3.

В качестве валидатора OpenApi на SOWA используется библиотека swagger-request-validator.

Параметры:

Название

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

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

Описание

validation_schema

+

Элемент вида {type: file, path: путь}

Обязательный параметр, определяющий относительный путь к схеме валидации от каталога ресурсов профиля

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

- id: openapi_validation
  name: openapi.validation
  url: ^\/public\/request\/
  allowed_queries:
    - method: post
    - method: get
    - method: put
  chains:
    request_chains:
      - actions:
        - action: OpenApiValidation
          params:
            validation_schema: {type: file, path: schemes/OPENAPI/deposits-api.yaml}
        message: $clj_request_body
    response_chains:
      - actions:
        - action: OpenApiValidation
          params:
            validation_schema: {type: file, path: schemes/OPENAPI/deposits-api.yaml}
        message: $clj_response_body

В приведенном примере валидация осуществляется для запросов и ответов по OpenAPI спецификации deposits-api.yaml, расположенной в каталоге schemes/OPENAPI/. Необходимо помнить, что url, объявленный у сервиса, должен учитывать весь перечень url'ов, объявленных в схеме OpenAPI. Перечень разрешенных методов также должен учитывать методы, разрешенные в OpenAPI спецификации.

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

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

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

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

  • clj_validation_error_description_ext - подробное описание ошибок.