SwaggerUI-如何在保留响应正文的同时创建自定义全局响应消息

时间:2019-03-05 13:01:07

标签: java spring-boot http swagger swagger-ui

我有很多不同的方法。它们都是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注释,那么代码也很多。

两者均未按预期工作。最好的方法是什么

0 个答案:

没有答案