2 вопроса о веб-сервисах RESTful - PullRequest
1 голос
/ 28 декабря 2011

Я новичок в веб-сервисах RESTful. У меня есть следующие 2 вопроса:

  1. Являются ли GET, POST, DELETE, PUT, TRACE, HEAD, OPTIONS единственными глаголами в Http, которые я могу использовать для веб-сервисов RESTful?

  2. Как мне создать и использовать собственный глагол?

Я использую Java и Jersey для создания своих веб-сервисов RESTful.

Ответы [ 2 ]

3 голосов
/ 29 декабря 2011

Ответ на вопрос 1: да, поскольку они ограничены спецификацией HTTP. Однако на практике большинство приложений REST используют только GET и POST, поскольку они наиболее широко поддерживаются всей интернет-инфраструктурой. И тогда ответ на второй вопрос - нет, вы не можете создать собственный глагол.

При использовании глаголов HTTP следует учитывать, что GET не должен иметь побочных эффектов, поскольку клиент может повторно отправить GET в любое время (в случае обнаружения сбоя связи). Однако POST может быть отправлен клиентом не более одного раза, поэтому его следует использовать для всего, что вызывает изменение, которое невозможно повторить (например, вставку).

Обычно вы определяете, какой "глагол" вы хотите в своем приложении, как часть URL, а не как глагол HTTP.

0 голосов
/ 29 декабря 2011

Тогда как мне обеспечить 10 действий только 7 глаголами?

Идея веб-служб заключается в том, чтобы сосредоточиться на объектах , а не на глаголах.

Ваши действия: «Создать» («POST»), «Получить» («GET»), «Обновить» («PUT») или «Удалить» («УДАЛИТЬ») объектов .

Разве каждое действие не идет под отдельным глаголом?

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

Или я не прав и могу использовать условные выражения для обеспечения нескольких действий под одним глаголом?

Нет. Вы можете сделать запрос на создание («POST»), который, в свою очередь, может создать несколько отдельных объектов.

В целом, как другие проектируют свое приложение так, что им не нужны дополнительные глаголы, даже если им нужно предоставить 100 различных действий?

Вы сосредотачиваетесь на объектах . Объекты создаются, извлекаются, обновляются и удаляются.

...