#java #spring #spring-boot #api
#java #весна #spring-boot #API
Вопрос:
Я хочу знать наилучший способ вернуть единообразный ответ для каждого API. Например:
В случае успеха он должен ответить:
{
statusCode: 200,
message: "customMessage",
results: [{...}]
}
В случае сбоя он должен ответить (например):
{
statusCode: 404,
message: "customMessage",
results: []
}
Является ли хорошей идеей использовать ResponseBodyAdvice
или лучше создать, например SuccessDTO
, или ErrorDTO
и возвращать непосредственно из каждого метода контроллера.
Я бы приветствовал несколько примеров ResponseBodyAdvice
, если это лучшее решение.
Комментарии:
1. Вам действительно нужно
SuccessDTO
? Для этого просто используйте код состояния HTTP и возвращайте результаты.
Ответ №1:
- Создайте SuccessDTO и верните его для всех успешных сценариев.
{ "data": { "name": "Ram", "id": "101" }, "message": "user has been added", "status": 200, "timeStamp": "2021-12-02T14:51:35.733 00:00", "path": "/api/v1/user/" }
Примечание: — Поле данных будет содержать данные ответа
- Создайте ErrorDTO и возвращайтесь для случаев сбоя / исключения (лучше использовать рекомендации контроллера).
{ "message":"Not be able to add user" "status":400 "timeStamp":"2021-12-02T14:51:35.733 00:00" "path":""/api/v1/user/" }
Примечание: В случае ошибки / исключения поля данных не будет.
Аналогичные сведения доступны по ссылке ниже.
https://medium.com/codestorm/custom-json-response-with-responseentity-in-spring-boot-b09e87ab1f0a