如何使用swagger-springmvc呈现重复的@ApiResponse代码?

时间:2015-04-17 23:53:40

标签: swagger

使用库:

<dependency>
    <groupId>com.mangofactory</groupId>
    <artifactId>swagger-springmvc</artifactId>
    <version>1.0.2</version>
</dependency>

@ApiResponse声明如下:

@ApiResponses(value= {
        @ApiResponse(code = 400, message = "TEST 1"),
        @ApiResponse(code = 400, message = "TEST 2")
})

JSON输出显示:

{"code":400,"message":"TEST 2","responseModel":"Void"}

预期的输出实际上是:

{"code":400,"message":"TEST 2","responseModel":"Void"},{"code":400,"message":"TEST 1","responseModel":"Void"},

无论如何要解决这个问题?

问题也出现在https://github.com/springfox/springfox/issues/686

2 个答案:

答案 0 :(得分:2)

根据2.0 spec,响应代码是唯一的。即使没有明确说明,也只是基于它是响应集合中的关键这一事实。

因此基于springfox不支持此功能。

另一种方法是在同一响应消息中描述可能导致400状态代码的所有条件。

答案 1 :(得分:0)

我同意Nils El-Himoud。不仅要记录HTTP状态代码,而且要记录可能与它们相关的消息,这将很有帮助。一个用例:API端点将多个验证应用于输入,并为每个验证返回400,并带有唯一的消息。最好通过多个@APIRESPONSE条目记录验证,每个条目都显示验证消息之一。