Я создал Camel Rest-DSL в проекте весенней загрузки. Теперь, во время реализации swagger, когда я передаю параметр множественного запроса с обязательными и необязательными полями, он не захватывает нулевое значение за ненадобностью.поля.
Мой пример кода выглядит примерно так:
================ Публичный класс Router расширяет RouteBuilder {
@Override
public void configure() throws Exception,PredicateValidationException {
JsonDataFormat json = new JsonDataFormat(JsonLibrary.Jackson);
Exchange exchnage;
CamelContext context = new DefaultCamelContext();
restConfiguration()
.component("servlet")
.apiContextPath("/api-docs")
.contextPath("/swagger")
.apiProperty("api.title", "Sample Services")
.apiProperty("api.version", "v1");
interceptFrom().to("log:received");
rest().get("/getAppStatus?MainID={MainID}&MainID2={MainID2}&MainID3={MainID3}&MainID4={MainID4}").produces("application/json").param().name("Consumer").type(RestParamType.header).endParam()
.param().name("UserRefId").type(RestParamType.header).endParam()
.param().name("ConRefId").type(RestParamType.header).endParam()
.param().name("MainID").type(RestParamType.query).endParam()
.param().name("MainID2").type(RestParamType.query).required(false).endParam()
.param().name("MainID3").type(RestParamType.query).required(false).endParam()
.param().name("MainID4").type(RestParamType.query).required(false).endParam()
.description("Get Application Status")
.to("direct:getAppStatus");
from("direct:getAppStatus").bean(idGen)
.log("body before is : ${body}")
.setHeader("operationName",constant("getAppStatus"))
.process(new GetRequestProcessor())
.setHeader("Content-Type", constant("{{route.ContentType}}"))
.setHeader("SOAPAction", constant("{{route.getAppStatus}}"))
.log("body after is : ${body}")
.setHeader("opName",constant("getAppStatus"))
.to("{{route.sampleURL}}")
.process(new GetApplicationStatusResponseProcessor()).end();
}
}
==================== Здесь: UserRefId и ConRefId используются в качестве валидаторов запросов.
Параметр запроса MainIDтребуется, и MainID2, MainID3, MainID4 являются полями, которые могут содержать нулевые значения.
Пример ссылки:
Link1 = http://localhost:8080/swagger/getAppStatus?MainID=12345&MainID2=&MainID3=&MainID4=
Но когда он запускается через пользовательский интерфейс Swagger, в CURL он показывает:
Ссылка 2 = http://localhost:8080/swagger/getAppStatus?MainID2=%MainID2%7D&MainID3=%MainID3%7D&MainID4=%MainID4%7D&MainID=12345
Проблема сохраняется только при вступлении в действие необязательного поля.
Есть ли какой-либо параметр, который позволитнулевые значения для вставки в необходимом формате [Link1], скорее как ссылка на ошибку [Link2]?