Swagger - 默认情况下,Springfox 总是生成一些响应消息 (401,403...)。我怎样才能删除它们?
Swagger - Springfox always generates some response messages (401,403...) by default. How can I remove them?
我有这么简单的控制器:
@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
您应该能够将插件设置为而不是使用默认响应消息。请按照以下针对不同版本的说明进行操作。
对于 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
...;
除了使用
new Docket().useDefaultResponseMessages(false)
您可能还需要使用此注释,具体取决于您想要的状态代码 return:
@ResponseStatus(HttpStatus.CREATED)
⚠️ 不要将 ResponseEntity
与 WebFlux 一起使用,因为那样会始终添加 200 代码。看到这个 github issue.
使用 OpenAPI 3,您只需将此 属性 添加到 applications.yml(或类似的)
springdoc:
override-with-generic-response: false
我有这么简单的控制器:
@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
您应该能够将插件设置为而不是使用默认响应消息。请按照以下针对不同版本的说明进行操作。
对于 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
...;
除了使用
new Docket().useDefaultResponseMessages(false)
您可能还需要使用此注释,具体取决于您想要的状态代码 return:
@ResponseStatus(HttpStatus.CREATED)
⚠️ 不要将 ResponseEntity
与 WebFlux 一起使用,因为那样会始终添加 200 代码。看到这个 github issue.
使用 OpenAPI 3,您只需将此 属性 添加到 applications.yml(或类似的)
springdoc:
override-with-generic-response: false