Swagger - Springfox默认会生成一些响应消息(401,403 ...)。我该如何删除它们?

时间:2015-05-05 07:52:58

标签: spring-mvc swagger swagger-ui

我的控制器很简单:

    @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

2 个答案:

答案 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