Search code examples
spring-mvcswaggerswagger-ui

Swagger - Springfox always generates some response messages (401,403...) by default. How can I remove them?


I have controller as simple as this:

@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();} );
}

I was expecting to have only a response message for HTTP status 200. However springfox always generates the ones below (401, 403, 404). How can I disable (not show) them?

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

Solution

  • You should be able to set up the plugin to not use the default response messages. Follow below instructions for different versions.

    For 1.0.2 or prior

      new SwaggerSpringMvcPlugin(...)
            //More config
            .useDefaultResponseMessages(false) //<-- this should be false
      ...;
    

    For 2.x

      new Docket()
            //More config
            .useDefaultResponseMessages(false) //<-- this should be false
      ...;