У меня есть требование использовать необязательные параметры пути. Итак, сделайте это так, как показано ниже;
@ApiOperation(httpMethod = "GET", value = "Get User Details With Optional Path Parameters", notes = "Output depends on values provided")
@ApiResponses(value = {
@ApiResponse(code = 404, message = "We do not unserstand what you mean"),
@ApiResponse(code = 400, message = "You are not requesting like a BOSS.") })
@RequestMapping(value = { "/getuser/userid/{userid}",
"/getuser",
"/getuser/userid/{userid}/alias/{alias}", "getuser/alias/{alias}" }, method = RequestMethod.GET, produces = {
MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE })
@ResponseStatus(HttpStatus.OK)
private UserSchema getUserDetails(
@PathVariable Optional<String> userid,
@PathVariable Optional<String> alias) {
Users user = null;
UserSchema returningSchema = buildDefaultSchema();
if (alias.isPresent()) {
//Get The Value
} else {
//Try Get Other Value and do stuff etc.
}
//Similar for userid
try {
//Get User Data From DB
user = dao.getUserData(userid,alias);
//Bind data to returning schema
} catch (Exception ex) {
Log.error(getClass().getName(), ex);
returningSchema.setResponseText("Something is Wrong");
}
return returningSchema;
}
Но из-за чванства это не позволяет сделать запрос, поскольку PathVariables
относятся к типу required
. Я плохо разбираюсь в javascript. Пробовал это решение для изменения swagger-ui.js
, но, похоже, потерялся в огромный файл и не может найти упомянутую часть.
Я использую последнюю версию Swagger-UI. Могу ли я сделать запрос с необязательными переменными пути, и правильный путь должен быть показан в swagger?
ПРИМЕЧАНИЕ. Я знаю, что в спецификации swagger не разрешены необязательные переменные пути. Но я хочу изменить это только в своем приложении.
Спасибо.