Camel Rest-DSL обязательный параметр игнорируется - PullRequest
0 голосов
/ 23 мая 2018

У меня есть 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?Может быть, я что-то неправильно настроил?

1 Ответ

0 голосов
/ 23 мая 2018

Ах, хорошо.Сегодня в rest-dsl нет / только немного проверки.Для этого он использует выбранный HTTP-компонент (сервлет, рестлет, undertow и т. Д.).

Но, честно говоря, мы можем улучшить это и позволить Camel-core выполнить некоторую предварительную проверку, если параметры указаны вВаш пример.

Я зарегистрировал тикет: https://issues.apache.org/jira/browse/CAMEL-12533

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...