Какие отдохнуть / post / delete вызовы должны вернуться по конвенции?

StackOverflow https://stackoverflow.com/questions/4268707

  •  28-09-2019
  •  | 
  •  

Вопрос

  1. Согласно «покой идеологии», что должно быть в тело ответа для запросов PUT / POST / DELETE?

  2. Как насчет возвратных кодов? Является HTTP_OK достаточно?

  3. В чем причина таких конвенций, если таковые имеются?

Я нашел хороший пост, описывающий различия пост / положения: Пост против положенияНо это все еще не отвечает на мой вопрос.

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

Решение

Простите всплывающую, но если вы отдыхаете через http, то RFC7231. Описывает именно то, что ожидается поведение от Get, Pubd, Post и Delete.

Обновление (3 июля '14):
HTTP SEP намеренно не определяет, что возвращено из поста или удаления. Спецификация определяет только то, что нужно определить. Остальное осталось до того, чтобы он выбирал.

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

В целом, конвенции «думают, как будто вы просто доставляете веб-страницы».

Для положения я вернул ту же точку зрения, что вы получите, если вы получили сразу после; Это приведет к тому, что 200 (ну, предполагая, что рендеринг преуспевает, конечно). Для поста я бы сделал перенаправление на созданный ресурс (предполагая, что вы выполняете операцию создания; если нет, просто верните результаты); Код для успешного создания - это 201, который действительно является единственным HTTP-кодом для перенаправления, который не находится в диапазоне 300.

Я никогда не был доволен тем, что нужно удалить возвращение (мой код в настоящее время производит HTTP 204 и пустое тело в этом случае).

Создание ресурса, как правило, сопоставлено на пост, и это должно вернуть местоположение нового ресурса; Например, в рельсах леса создание будет перенаправляться на шоу для вновь созданного ресурса. Тот же подход может иметь смысл для обновления (поставленных), но это меньше Конвенции; Обновление нужно только указывать успех. Удаление, вероятно, только нужно только указывать успех; Если вы хотите перенаправить, возвращая список ресурсов, вероятно, имеет самый смысл.

Успех может быть указан http_ok, да.

Единственное твердое и быстрое правило в том, что я сказал выше, состоит в том, что создание должно вернуть местоположение нового ресурса. Это похоже на меня без мозга; Это имеет смысл, что клиент должен иметь возможность получить доступ к новому пункту.

RFC7231 не имеет значения и может быть пустым

Как мы реализуем решение JSON API стандартное решение в проекте:

post / put: выводит атрибуты объекта, как в Get (полевые фильтр / отношения применяются то же самое)

Удалить: данные содержит только NULL (для его представления отсутствующего объекта)

Статус стандартного удаления: 200

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