在Swagger API响应中设置对象列表

时间:2019-02-21 10:44:21

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

我想使用Swagger发送API响应中的对象列表。

@ApiResponse(code = 200, message = ApiResponseMessages.ITEM_FETCHED, 
response = "")

我有课-

class Item{
   int id;
   String item_name;
}

我想要一个回复-

{
    {
       "id" : 0,
       "item_name" : ""
    }
    {
       "id" : 0,
       "item_name" : ""
    }
    {
       "id" : 0,
       "item_name" : ""
    }
}

我该怎么做。任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:2)

对于新包:io.swagger.v3.oas.annotations.responses.ApiResponse

您需要这样做(使用 @ArraySchema 注释):

@ApiResponse(responseCode = "200", description = "",
            content = {@Content(
                mediaType = "application/json",
                array = @ArraySchema(schema = @Schema(implementation = Bar.class))
            )}
)

答案 1 :(得分:1)

您还可以像这样设置 ApiReponse

{{1}}

它将返回:

{{1}}

答案 2 :(得分:1)

您可以如下使用 responseContainer =“列表”

@ApiOperation(value = "retrieve items", response = Item.class, responseContainer = "List")

答案 3 :(得分:0)

只需将列表包装在一个这样的对象中:

public class ItemWrapper{
private List<Item> items;
}

然后将类ItemWrapper作为API的响应:

@ApiResponse(code = 200, message = ApiResponseMessages.ITEM_FETCHED, 
response = ItemWrapper.class)