Вопрос

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

Что, если мой хостер не разрешит ПОЛОЖИТЬ и Удалить?

Действительно ли это важно, могу ли я жить долго и счастливо только с ПОЛУЧИТЬ и Публикация ?


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


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

Решение

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

Эта статья расскажет вам, почему:http://www.artima.com/lejava/articles/why_put_and_delete.html

Хотя для истинных рестафрианцев это может показаться ересью, в реальном мире вы делаете то, что можете, с тем, что у вас есть.Будьте настолько рациональны, насколько можете, и максимально совместимы с вашим собственным соглашением, насколько можете, но вы определенно можете создать хорошую RESTful-систему без P и D.

rp

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

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

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

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

Редактировать:Вот цитата из Филдинга, который является тем, кто создал и определил REST:

REST API не должен содержать никаких изменений в протоколах связи, кроме заполнения или исправления деталей недостаточно определенных битов стандартных протоколов, таких как метод ИСПРАВЛЕНИЯ HTTP или поле заголовка ссылки.Обходные пути для неработающих реализаций (таких как те браузеры, которые достаточно глупы, чтобы полагать, что HTML определяет набор методов HTTP) должны быть определены отдельно или, по крайней мере, в приложениях, с ожиданием, что обходной путь в конечном итоге устареет.[Сбой здесь подразумевает, что интерфейсы ресурсов являются объектно-ориентированными, а не универсальными.]

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

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

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