В REST API вызовите что мы должны вернуть в случае пустого результата - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть 2 услуги -
1. Служба клиента
2. Служба функций

Служба клиентов запрашивает у службы функций функцию, соответствующую клиенту.Если в базе данных не найдена функция для клиента, что мы должны вернуть?
1. 404 ресурс не найден
2. 204 Успех - нет содержимого
3. 200 Успех - {функции: []} // Пустой список

Ответы [ 3 ]

0 голосов
/ 30 апреля 2019

Вы можете вернуться двумя способами.404 не действителен, если нет содержимого.

a) 204 No Content
Explaination: The server has fulfilled the request but does not need to return an entity-body, and might want to return updated metainformation.


b) Return 200 and with empty body {};

Вы можете найти больше на w3 https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

0 голосов
/ 01 мая 2019

На практике я всегда возвращал 200 с пустым списком.Тот факт, что список пуст, говорит потребителю, что, хотя с запросом ничего не пошло не так, с ним не связано никаких ресурсов.

204 - это справедливый компромисс между 200 и 404, но я думаю, чтоэто добавляет минимальное значение.

Я бы лично отказался от выбрасывания 404 на конечную точку, которая возвращает список, поскольку ожидается, что будут ситуации, когда список пуст (это потенциально слишком широкий оператор).Если запрос не выполняется из-за ресурса, связанного со списком, я определенно считаю 404 действительным (допустим, у вас был пользователь со списком шляп, а запрос на шляпы был для пользователя NOT FOUND).

0 голосов
/ 30 апреля 2019

HTTP-ответ должен быть 200, Просто покажите «пустой» результат в TAG

...