Какой код возврата http должен быть, если нет доступных данных
Например, у меня есть метод API /api/orders.getOrders
который на самом деле всегда существует. Если этот метод не возвращает данные в следующем формате, я должен отправить 404 или 200 http код ответа?
{ "orders":[]
}
1 ответ
200 правильно.
Из RFC 7231
Класс кода состояния 4xx (Ошибка клиента) указывает, что клиент, похоже, допустил ошибку.
Код состояния 404 (не найден) указывает, что исходный сервер не нашел текущего представления для целевого ресурса
В вашем случае клиент не ошибся в запросе ресурса; исходный сервер действительно нашел текущее представление ресурса, поэтому 404 (действительно, весь класс ответов 4xx) не подходит.
Код состояния 204 (без содержимого) указывает, что сервер успешно выполнил запрос и что в теле полезной нагрузки ответа нет дополнительного содержимого для отправки.
"Нет содержимого" означает, что тело сообщения ответа HTTP пустое, то есть возвращаемое представление имеет длину 0 байтов. Это не подходит при возврате непустого представления пустого ресурса.