Какой правильный код состояния HTTP для результатов поиска не найден? - PullRequest
0 голосов
/ 29 ноября 2018

Мы реализуем REST API в Java.

Для конечной точки GET REST, если я что-то ищу:

  1. Если найдена какая-либо запись / запись, то она будетвернуть 200 код состояния и результаты / результат.

  2. Если не найдено записей, какой правильный код статуса HTTP?

Когда я искал вGoogle и SO, я нашел разные ответы, такие как:

200 with empty list (if the API response is item but NOT list, then I can't send empty list)
204 No Content
404 Not Found

Какой правильный код статуса HTTP, если запись не найдена или результаты поиска не найдены?

1 Ответ

0 голосов
/ 29 ноября 2018

Существует два различных сценария:

  • Для получения представления коллекции ресурсов (например, GET /products?name=foo), в которой нет элементов, вернуть200 с пустым массивом.

  • Для получения представления отдельного ресурса (например, GET /products/1), который нене существует, вернуть 404.

Код состояния 204 предназначен для использования, например, как результатоперации PUT, позволяющей серверу указать, что действие успешно применено к целевому ресурсу.Он не подходит для сценариев, описанных выше.


См. этот ответ для получения дополнительной информации.

...