我有以下代码,这是我
的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 UI发出请求,该请求仍会到达服务器,这会导致不必要的服务器错误。 @PathVariable的参数“ required”默认情况下为true(因此,默认值为@PathVariable(name =“ userId”,required = true)),并且在该参数上没有@ApiParam的情况下也可以正常工作。就我而言,这些注释不应改变彼此的行为。那是Swagger错误还是只是滥用?
答案 0 :(得分:3)
@ApiParam的参数“ required”默认情况下为false,因此您只需将其更改为true,即可通过Swagger UI进行设置。
@ApiParam(value = "The user id", required = true) @PathVariable("userId") Integer userId