0

我使用的招摇版本如下,我的问题与 @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 并且用户提供了无效的详细信息/输入时,我的应用程序将返回用户输入中的错误列表。每个错误都被捕获在一个错误对象中

MyErrorObject 
{
  Date date;
  String errorCode;
  String errorMessage;
  //getters //setters
}

- 所以如果用户输入无效,我的应用程序响应将如下所示 -

[
    {
        "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)

但是上面没有用,我看到下面的编译时错误 -

语法错误,插入“}”完成 MemberValueArrayInitializer

我试过 - 其他组合也像下面但没有运气 -

@ApiResponse(code = HttpURLConnection.HTTP_BAD_REQUEST,
          message = ErrorConstants.NotAllowed, response=List<MyErrorObject.class>)

那么,使用 @ApiResponse 注释表示错误列表的正确方法是什么? 因此,swagger doc 上的错误响应如下所示 -

[
 {
  "date": "Date",
  "errorCode": "string",
  "errorMessage": "string"
 }
]
4

1 回答 1

1

从 的定义中ApiResponse.class,很明显它们有一个responseContianer属性,您可以设置它来实现所需的结果。

@ApiResponse(
    code = HttpURLConnection.HTTP_BAD_REQUEST,
    message = ErrorConstants.NotAllowed, 
    response = MyErrorObject.class,
    responseContainer = "List"
)
于 2021-09-23T11:43:22.390 回答