我的控制器很简单:
@RequestMapping(value="/async/data", method=RequestMethod.GET, produces="application/json")
@ApiOperation(value = "Gets data", notes="Gets data asynchronously")
@ApiResponses(value={@ApiResponse(code=200, message="OK")})
public Callable<List<Data>> getData(){
return ( () -> {return dataService.loadData();} );
}
我希望只有HTTP状态200的响应消息。但是springfox总是生成以下的消息(401,403,404)。如何禁用(不显示)它们?
async-rest-controller Show/Hide List Operations Expand Operations
GET /async/data Gets data
Implementation Notes
Gets data asynchronously
Response Class (Status 200)
ModelModel Schema
{}
Response Content Type
Response Messages
HTTP Status Code Reason Response Model Headers
401 Unauthorized
403 Forbidden
404 Not Found
答案 0 :(得分:25)
您应该能够将插件设置为 而不是 使用默认的响应消息。请按照以下说明了解不同版本。
对于1.0.2或之前的
new SwaggerSpringMvcPlugin(...)
//More config
.useDefaultResponseMessages(false) //<-- this should be false
...;
对于2.x
new Docket()
//More config
.useDefaultResponseMessages(false) //<-- this should be false
...;
答案 1 :(得分:0)
除了使用
new Docket().useDefaultResponseMessages(false)
您可能还需要根据要返回的状态码使用此批注:
@ResponseStatus(HttpStatus.CREATED)
⚠️不要将ResponseEntity
与WebFlux一起使用,因为那样一来总是会添加200个代码。请参见此github issue。