Swagger @ApiResponse 应该显示 ErrorObject 列表,即 List<MyErrorObject> ?这怎么可能?
Swagger @ApiResponse should show List of ErrorObject i.e List<MyErrorObject> ? How is this possible?
我使用的 swagger 版本如下,我的问题与@ApiResponse 注解有关。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
<scope>compile</scope>
</dependency>
当用户访问我的 api 时,如果用户提供无效的 details/input,我的应用程序将在用户输入中返回错误列表。
每个错误都被捕获在一个错误对象中
MyErrorObject
{
Date date;
String errorCode;
String errorMessage;
//getters //setters
}
-所以我的应用程序响应 incase 无效用户输入将如下所示 -
[
{
"date": "2021-09-22",
"errorCode": "6548",
"errorMessage": "there are no booking available in selected city"
},
{
"date": "2021-09-22",
"errorCode": "2649",
"errorMessage": "your age does not allow you to travel to this location"
}
]
---现在回到我的问题 - 使用 swagger @ApiResponse 注释,我希望 api 用户知道响应格式。所以,我在下面尝试了
@ApiResponse(code = HttpURLConnection.HTTP_BAD_REQUEST,
message = ErrorConstants.NotAllowed, response=List<MyErrorObject>.class)
但上面没有工作,我看到下面的编译时错误 -
Syntax error, insert "}" to complete MemberValueArrayInitializer
我试过了 - 其他组合也很像下面但运气不好 -
@ApiResponse(code = HttpURLConnection.HTTP_BAD_REQUEST,
message = ErrorConstants.NotAllowed, response=List<MyErrorObject.class>)
那么,使用@ApiResponse 注释表示错误列表的正确方法是什么?
所以 swagger doc 上的错误响应如下所示 -
[
{
"date": "Date",
"errorCode": "string",
"errorMessage": "string"
}
]
根据 ApiResponse.class
, it's evident they have a responseContianer
属性的定义,您可以设置该属性以获得所需的结果。
@ApiResponse(
code = HttpURLConnection.HTTP_BAD_REQUEST,
message = ErrorConstants.NotAllowed,
response = MyErrorObject.class,
responseContainer = "List"
)
我使用的 swagger 版本如下,我的问题与@ApiResponse 注解有关。
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
<scope>compile</scope>
</dependency>
当用户访问我的 api 时,如果用户提供无效的 details/input,我的应用程序将在用户输入中返回错误列表。 每个错误都被捕获在一个错误对象中
MyErrorObject
{
Date date;
String errorCode;
String errorMessage;
//getters //setters
}
-所以我的应用程序响应 incase 无效用户输入将如下所示 -
[
{
"date": "2021-09-22",
"errorCode": "6548",
"errorMessage": "there are no booking available in selected city"
},
{
"date": "2021-09-22",
"errorCode": "2649",
"errorMessage": "your age does not allow you to travel to this location"
}
]
---现在回到我的问题 - 使用 swagger @ApiResponse 注释,我希望 api 用户知道响应格式。所以,我在下面尝试了
@ApiResponse(code = HttpURLConnection.HTTP_BAD_REQUEST,
message = ErrorConstants.NotAllowed, response=List<MyErrorObject>.class)
但上面没有工作,我看到下面的编译时错误 -
Syntax error, insert "}" to complete MemberValueArrayInitializer
我试过了 - 其他组合也很像下面但运气不好 -
@ApiResponse(code = HttpURLConnection.HTTP_BAD_REQUEST,
message = ErrorConstants.NotAllowed, response=List<MyErrorObject.class>)
那么,使用@ApiResponse 注释表示错误列表的正确方法是什么? 所以 swagger doc 上的错误响应如下所示 -
[
{
"date": "Date",
"errorCode": "string",
"errorMessage": "string"
}
]
根据 ApiResponse.class
, it's evident they have a responseContianer
属性的定义,您可以设置该属性以获得所需的结果。
@ApiResponse(
code = HttpURLConnection.HTTP_BAD_REQUEST,
message = ErrorConstants.NotAllowed,
response = MyErrorObject.class,
responseContainer = "List"
)