RESTful веб-сервисы и HTTP-глаголы - PullRequest
14 голосов
/ 23 августа 2008

Каков минимальный набор HTTP-глаголов, который сервер должен разрешить классифицировать веб-сервису как RESTful?

Что если мой хостер не разрешит PUT и DELETE ?

Это действительно важно, могу ли я жить долго и счастливо с помощью всего лишь GET и POST ?


Обновление: Спасибо за ответы, Ответ Роджера , вероятно, был лучшим из-за ссылки на интервью Билла Веннерса и Эллиотта Расти Гарольда Теперь я понял.


Ответы [ 5 ]

22 голосов
/ 23 августа 2008

Да, вы можете жить без PUT и DELETE.

В этой статье рассказывается, почему: http://www.artima.com/lejava/articles/why_put_and_delete.html

Хотя для истинных РЕСТАФРИАНЦОВ это может быть ересью, в реальном мире вы делаете то, что можете, с тем, что имеете. Будьте настолько рациональны, насколько это возможно, и в соответствии со своим собственным соглашением, насколько можете, но вы определенно можете построить хорошую систему RESTful без P и D.

гр

3 голосов
/ 23 августа 2008

Вы также можете использовать X-Http-Verb-Override: DELETE inst. HTTP УДАЛИТЬ. Это также полезно для клиентов Silverlight, которые не могут изменять HTTP-глаголы и поддерживают только GET и POST ...

2 голосов
/ 20 июля 2009

REST позволяет нарушать соглашение о протоколе, если реализации протокола нарушены (так что единственные нестандартные вещи, которые вы делаете, - это обход оборванных частей реализации). Так что в REST допустимо использовать какой-то другой метод для представления обычно неподдерживаемых глаголов, таких как DELETE или PUT.

edit: Вот цитата из Филдинга, который создал и определил REST:

REST API не должен содержать каких-либо изменений в протоколах связи, за исключением заполнения или исправления деталей недостаточно определенных битов стандартных протоколов, таких как метод PATCH HTTP или поле заголовка Link. Обходные пути для неработающих реализаций (например, таких браузеров, которые достаточно глупы, чтобы полагать, что HTML определяет набор методов HTTP) должны определяться отдельно или, по крайней мере, в приложениях, с ожиданием того, что обходной путь в конечном итоге устареет [Ошибка здесь подразумевает, что интерфейсы ресурса являются объектно-ориентированными, а не универсальными.]

2 голосов
/ 23 августа 2008

Если вы просто используете GET и POST, это все равно RESTful. Ваш веб-сервис может выполнять только те действия, которые требуют только GET или POST, так что это нормально.

1 голос
/ 23 августа 2008

Современные веб-браузеры обрабатывают только GETS + POSTS. Например, в Rails PUTS + DELETES «подделываются» через скрытые поля формы.

Если ваш фреймворк не имеет обходного пути для "поддержки" PUTS + DELETES, пока не беспокойтесь о них.

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