RESTful HTTP-коды ответов - PullRequest
7 голосов
/ 11 мая 2009

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

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

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

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

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

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

Ответы [ 5 ]

15 голосов
/ 11 мая 2009

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

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

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

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

4 голосов
/ 11 мая 2009
  1. 400
  2. 404
  3. 200
  4. 200
  5. 201 - ресурс успешно создан
2 голосов
/ 11 мая 2009

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

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

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

1 голос
/ 11 мая 2009

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

0 голосов
/ 11 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...