Коды состояния HTTP не соответствуют и не предназначены для точного сопоставления с каждой реальной ошибкой. Они представляют категории ошибок.
Например, 404 означает, что ресурс не может быть найден, но если ваш путь - / customers / 11 / animals / 5, то есть несколько вещей, которые могут быть неправильными. тропинка. у покупателя 11 может не быть, например, животного 5, или может не быть покупателя 11. На запрос «животное не найдено» нет ответа http. Или ваш API может не иметь каких-либо вызовов с этим шаблоном URL для начала.
Вы должны вернуть код состояния, который представляет, какая у вас «категория» ошибки (в этом случае что-то не было найдено), а тело ответа должно содержать более подробную c подробную информацию об ошибке. Чтобы упростить задачу, я считаю полезным, если структура данных одинакова для успеха и ошибки (это значительно упрощает синтаксический анализ) с полем «данные», которое зависит от ответа.
Вот один пример:
status code: 404 not found
body: {
"messageDetailCode" :"CustomerNotFound",
"messageDetail" : "Customer not found",
"data" : null
}
Дополнительная литература:
Какой код статуса HTTP должен возвращать служба REST API в случае ошибки проверки?