REST api: лучшие практики в случае отсутствия контента - PullRequest
0 голосов
/ 19 сентября 2019

Я довольно хорошо знаком с rest apis, но сегодня меня спросили: «а что если ресурс существует, но его содержимое по какой-то причине заблокировано?»

пример: попытаться получить users/18но пользователь с идентификатором 18 был забанен / заблокирован / что угодно.

Я думаю, что лучшим ответом будет возвращение 204, но как также сообщить клиенту причину, по которой ресурс недоступен для вас?

Есть ли лучший метод для этого?

1 Ответ

1 голос
/ 19 сентября 2019

Я думаю, что лучшим ответом было бы вернуть 204, но как также сообщить клиенту причину, по которой вам недоступен ресурс?

Нет, 204 нет 'Это хороший выбор - в частности, потому что 204 не может содержать тело сообщения .

. Я бы ожидал, что либо

403 Запрещено

Код состояния 403 (Запрещено) указывает, что сервер понял запрос, но отказывается его авторизовать.Сервер, который хочет обнародовать, почему запрос был запрещен, может описать эту причину в полезной нагрузке ответа (если есть).

404 Не найдено

Исходный сервер, который хочет «скрыть» текущее существование запрещенного целевого ресурса, МОЖЕТ вместо этого ответить кодом состояния 404 (Не найдено).

451 Недоступно для юридического лицаПричины

Этот код состояния указывает, что сервер отказывает в доступе к ресурсу вследствие законного требования.

...