Полезна ли глагольная ориентация в приложении веб-службы?

Спасибо, что посмотрели!

Фон

Я создаю строго межмашинное (спокойное) приложение для веб-службы. Приложение будет прослушивать запросы, извлекать данные, создавать объекты, сериализовать их в JSON и возвращать объект JSON.

Это приложение в конечном итоге будет использоваться другими веб-приложениями, а также приложениями iOS, Android и даже настольными приложениями.

Существующий код, который я унаследовал, различается на основе того, как служба была вызвана в терминах HTTP-глаголов (GET, POST и т. Д.).

Вопрос

В наши дни и эпоху межмашинного взаимодействия, актуален ли HTTP-глагол? Может ли это быть препятствием для будущего внедрения сервисного API, основанного на коде HTTP-глаголов?

Обновлять

fmgp дает четкий ответ на вопрос, почему используются эти глаголы, но я чувствую, что мне следует прояснить мои опасения:

Смогут ли другие платформы, такие как iOS или Android (например), инициировать вызовы на основе HTTP-глаголов, такие как GET и POST? Если ответ отрицательный, то я предполагаю, что нам не следует полагаться на эти глаголы и вместо этого встроить желаемое действие в URL-адрес запроса в качестве параметра.


person Matt Cashatt    schedule 25.09.2012    source источник
comment
Вы можете добавить пример? Я не уверен, вы имеете в виду URL-адреса типа /getUser/123 и /putUser? Просто это звучит не очень успокаивающе, и я никогда не слышал, чтобы это было практикой.   -  person kapex    schedule 25.09.2012
comment
Конечно, если я GET users / someUserId, код распознает, что запрос основан на получении, и вернет объект пользователя, содержащий информацию об этом пользователе. Если я POST users / someUserId и отправляю с сообщением объект пользователя, скажем, с измененным именем, взятым из формы, тогда код обновляет базу данных с новым именем.   -  person Matt Cashatt    schedule 25.09.2012
comment
Хорошо, я неправильно понял вопрос. Я почему-то думал, что вы имели в виду именование сервисов, т.е. буквально использовали get / post как часть URL-адреса. Использование http-методов - это основная концепция успокаивающих сервисов. Иногда вам даже нужно использовать это, например, вы не должны использовать GET для обновления вашей базы данных, так как несколько идентичных запросов могут быть кэшированы промежуточным сервером.   -  person kapex    schedule 25.09.2012
comment
Спасибо, kapep, это имеет смысл.   -  person Matt Cashatt    schedule 25.09.2012


Ответы (1)


В приложениях RestFul у вас есть команда для операции CRUD foreach:

  • Создать: POST
  • Читать: ПОЛУЧИТЬ
  • Обновление: PUT
  • Удалить: УДАЛИТЬ

Согласно этой философии, все, что заявлено как «успокаивающее», будет работать точно так же.

В этом нет ничего стандартного, только чистый, хорошо разработанный, простой для понимания стиль программирования. Конечно, вы можете захотеть выполнять все операции только с GET и некоторыми параметрами запроса, как только ваш клиент и сервер смогут это обработать.

person fmgp    schedule 25.09.2012
comment
Это помогает fmgp, спасибо. Я хотел бы увидеть, что думают и другие, чтобы закрыть вопрос. Спасибо еще раз. - person Matt Cashatt; 25.09.2012
comment
На самом деле это не так. Команда HTTP не соответствует точному отображению CRUD. GET и DELETE верны, но POST создается, когда целевой URI определяется сервером (а иногда и частичным обновлением), а PUT заменяет ресурс или создает ресурс, когда клиент устанавливает URI - person Arnon Rotem-Gal-Oz; 26.09.2012