Задать список объектов в ответе API Swagger
Я хочу отправить список объектов в ответ API, используя Swagger.
@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 ответа
Решение
Просто оберните список в один объект следующим образом:
public class ItemWrapper{
private List<Item> items;
}
И поставить класс ItemWrapper
как ответ API:
@ApiResponse(code = 200, message = ApiResponseMessages.ITEM_FETCHED,
response = ItemWrapper.class)
Вы также можете установить ApiReponse следующим образом:
@ApiResponse(code = 200, message = ApiResponseMessages.ITEM_FETCHED,
response = Item.class, responseContainer = "List"
)
Он вернется:
[
{
"id" : 0,
"item_name" : ""
},
{
"id" : 0,
"item_name" : ""
},
{
"id" : 0,
"item_name" : ""
}
]
Для нового пакета:
io.swagger.v3.oas.annotations.responses.ApiResponse
Вам нужно сделать это (с
@ArraySchema
аннотация):
@ApiResponse(responseCode = "200", description = "",
content = {@Content(
mediaType = "application/json",
array = @ArraySchema(schema = @Schema(implementation = Bar.class))
)}
)
Вы можете использовать responseContainer = "List", как показано ниже:
@ApiOperation(value = "retrieve items", response = Item.class, responseContainer = "List")