У меня есть API отдыха, созданный с помощью Camel Rest-DSL.Есть отдых, который использует GET со списком параметров, некоторые из которых являются обязательными.
Конфигурация маршрута:
rest().get("/{{camel.rest.version}}/myget")
.param()
.name("accountNumber")
.dataType("string")
.type(RestParamType.query)
.required(true)
.endParam()
.param()
.name("someId")
.dataType("string")
.type(RestParamType.query)
.required(false)
.endParam()
.produces(REST_PR_CN_TYPE)
.responseMessage().code("200").message("OK").endResponseMessage()
.responseMessage().code("500").endResponseMessage()
.route().routeId("rst_cardsInfo")
.log(LoggingLevel.INFO, "ApiRq Recieved http request")
.log(LoggingLevel.DEBUG, "AccountNumber: ${header.accountNumber}, SomeId: ${header.someId}")
.id("rst_rst_info_recieved")
.to("direct:drt_rst_info")
.endRest();
Когда я открываю сгенерированную пользователем страницу swagger-ui, мой APIвыглядит хорошо.Параметр accountNumber помечается как обязательный, someId - как не обязательный.
Используя любой другой инструмент, я могу отправить запрос без каких-либо параметров и получить HTTP.200 в качестве ответа.Я ожидал, что если параметр требуется, но не присутствует в запросе, запрос не будет выполнен.Spring Rest, например, обеспечивает наличие всех обязательных параметров.
Есть ли обязательная проверка присутствия params в Camel?Может быть, я что-то неправильно настроил?