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, объявленного у сервиса, должно включать в себя подмножество «paths», объявленных в openapi-схеме.
Например, в openapi-схеме описаны следующие paths:
/foo/bar/baz
/foo/baz/bar
/foo/foo/bar
Тогда в сервисе должен быть объявлен url, который включает в себя весь перечень описанных «paths» из openapi-схемы, в данном случае /foo.
В секции allowed queries необходимо указывать методы, разрешенные в OpenAPI спецификации.
Стоит учитывать, что если в секции response не указана схема валидации, то тело ответа будет отсутствовать.
Заполняемые переменные#
По результатам своего выполнения, действие OpenApiValidation может заполнять следующие переменные:
clj_validation_error_code — код ошибки;
clj_validation_error_description — расшифровка кода ошибки;
clj_validation_error_description_ext — подробное описание ошибок.