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 - подробное описание ошибок.