Вопрос

Я разрабатываю простой RESTful API и совершенно влюблен в то, насколько он минималистичен.Но я не уверен относительно правильных кодов HTTP-ответов для различных ситуаций:

  1. Неправильно сформированный запрос

  2. Правильно сформированный запрос ссылается на ресурс, который не существует

  3. Ресурс успешно удален

  4. Ресурс успешно отредактирован

В настоящее время я думаю, что 1 было бы 403 Forbidden;2 было бы 410 Gone;3 и 4 были бы 202 Accepted.Правильно ли они звучат?

Это было полезно?

Решение

Для # 1, 403 предполагает, что ваше приложение поняло запрос, но не выполнит его (т.е.текущий пользователь по какой-то причине не имеет разрешения на это).Я думаю, что плохой запрос 400 может иметь больше смысла в этом случае.

Для # 2 - я бы подумал, что 404 будет иметь больше смысла, т. е.ресурс не найден, если только ресурс действительно существовал в какой-то момент, а затем был удален, и в этом случае 410 было бы справедливо - но не многие клиенты знают, что делать с 410.

Для #3 и # 4 - 200, если вы успешно обработали удаление, 202, если удаление поставлено в очередь и будет обработано позже "вне диапазона".

RFC 2616 предоставляет отличные объяснения того, что означает каждый код ответа в довольно понятных терминах.

Другие советы

  1. 400
  2. 404
  3. 200
  4. 200
  5. 201 - ресурс успешно создан

1).400 - стандартный неверный запрос, 403 означает, что запрос отформатирован правильно, но вам не разрешен доступ к нему

2).404 - a 410 подразумевает , что ресурс действительно существовал, но был намеренно перемещен

3).и 4).200, если действие было успешно выполнено к моменту отправки ответа, 202, если действие находится на рассмотрении.На практике 202, скорее всего, предназначено для действий по удалению (где они могут быть предметом проверки), но вы можете захотеть или не захотеть немедленно возвращать 200 в любом случае, чтобы пользователю казалось, что он действительно удален.Это вопрос дизайна, имхо.

Возьмите книгу Ричардсона и Руби - в нем есть полезное приложение к вашему вопросу, и его необходимо прочитать в любом случае

почему бы не использовать стандартный коды ответа http .Вы бы бесплатно получили все оптимизации (например, 303, 304 ) / инфраструктуру, созданную для http .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top