我有很多不同的方法。它们都是POST,并且可以输出相同的状态代码(200、400、500),但响应主体不同。默认情况下,主体是正确的,而状态代码不是(它们具有401、402等)。
我已经禁用了默认状态代码。
首次尝试
我尝试将globalResponseMessage
方法添加到Docker:
public Docket apiDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.useDefaultResponseMessages(false)
.globalResponseMessage(RequestMethod.POST, ImmutableList.of(new ResponseMessage(200, "Some global OK message",null)))
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(getApiInfo());
}
但是,由于用户界面中未显示任何状态代码,因此无法正常工作。但是,生成的响应主体仍然存在。
第二次尝试
我尝试在方法上使用@ApiResponses
注释。
@ResponseBody
@PostMapping("/path")
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Request successful"),
@ApiResponse(code = 400, message = "Bad Request - Check for correct syntax"),
@ApiResponse(code = 500, message = "Internal Server Error")})
public StringWrapper method(@RequestBody Container params) throws IOException {
//lorem ipsum
}
此未显示界面中正确的状态代码,但是未显示否则会生成响应主体。
如果我在每种方法的上方都写了@apiClasses
注释,那么代码也很多。
两者均未按预期工作。最好的方法是什么