У меня есть следующий код, это искусство API моего
import org.springframework.web.bind.annotation.PathVariable;
import io.swagger.annotations.*;
@GetMapping(value = "/{userId}")
public String getUserHistory(ApiParam(value = "The user id")
@PathVariable("userId") Integer userId, Model model) throws NotFoundException {
// fetch user info
model.addAttribute("userInfo", userInfo);
return "userHistory";
}
Если у меня есть аннотация @ApiParam, @PathVariable становится необязательной, поэтому, если я не введу userId и не сделаю запрос через пользовательский интерфейс Swagger, запрос по-прежнему отправляется на сервер, что вызывает ненужные ошибки сервера. Параметр «required» в @PathVariable по умолчанию равен true (поэтому по умолчанию используется @PathVariable (name = "userId", required = true)) и отлично работает без @ApiParam для этого самого параметра. Насколько я понимаю, эти аннотации не должны менять поведение друг друга. Это ошибка Swagger или просто неправильное использование?
@lealceldeiro 2.7.0
Параметр «required» в @ApiParam по умолчанию равен false, поэтому вам просто нужно изменить его на true, чтобы он требовался через пользовательский интерфейс Swagger.
@ApiParam(value = "The user id", required = true) @PathVariable("userId") Integer userId
Версия Swagger?