Каковы преимущества переключения устаревших служб стиля RPC на REST?

Я поддерживаю устаревшее приложение, полное веб-служб в стиле RPC *. Например, у нас есть следующие службы для создания и удаления пользователей из системы:

Клиенты вызывают эти службы, отправляя XML-данные через HTTP POST. XML-запрос содержит всю информацию, необходимую серверу для обработки запроса (например, информацию об аутентификации, информацию о пользователе). Затем сервер отвечает XML-документом, содержащим любую информацию, о которой должен знать клиент (например, флаги успеха / неудачи и описания).

Мне интересно, каковы преимущества переключения этих служб стиля RPC на более RESTful архитектуру. Из того, что я прочитал, это будет означать следующее:

  1. Чтобы создать пользователей, клиенты по-прежнему должны будут отправлять XML-данные через HTTP POST (или PUT в зависимости от того, знают ли они конечный URL и знают ли они всю необходимую информацию для пользовательского ресурса). Однако информация для аутентификации будет передаваться в заголовках HTTP с использованием базовой аутентификации .
  2. Для удаления пользователей клиенты будут отправлять HTTP-вызов DELETE на https://example.com/users/ {идентификатор пользователя}. Опять же, аутентификационная информация будет передаваться в заголовках HTTP, а не в теле запроса. На самом деле, насколько я могу судить, тело запроса не требуется.
  3. Вместо того, чтобы указывать информацию об успехе / неудаче в XML-документе, сервер должен попытаться указать как можно больше через код состояния / описание состояния HTTP.

Теперь, насколько я могу судить, Основные преимущества преобразования этих сервисов в архитектуру RESTful:

  1. Мы бы использовали больше того, что может предложить HTTP, особенно в отношении аутентификации.
  2. URL-адреса немного более логичны, особенно если мы необходимо начать открывать ресурсы ниже уровня «пользователя» (например, https://example.com/users/ {идентификатор пользователя} / прочее).
  3. Это больше соответствует нативной архитектуре Интернета .

Я что-нибудь упустил? Я считаю, что использование архитектуры RESTful должно иметь больше преимуществ.

* Обратите внимание, что, когда я говорю «стиль RPC», я не имею в виду стандартизированный формат, такой как XML-RPC или SOAP.

5
задан Kevin Pang 12 May 2011 в 20:13
поделиться