Я поддерживаю устаревшее приложение, полное веб-служб в стиле RPC *. Например, у нас есть следующие службы для создания и удаления пользователей из системы:
Клиенты вызывают эти службы, отправляя XML-данные через HTTP POST. XML-запрос содержит всю информацию, необходимую серверу для обработки запроса (например, информацию об аутентификации, информацию о пользователе). Затем сервер отвечает XML-документом, содержащим любую информацию, о которой должен знать клиент (например, флаги успеха / неудачи и описания).
Мне интересно, каковы преимущества переключения этих служб стиля RPC на более RESTful архитектуру. Из того, что я прочитал, это будет означать следующее:
- Чтобы создать пользователей, клиенты по-прежнему должны будут отправлять XML-данные через HTTP POST (или PUT в зависимости от того, знают ли они конечный URL и знают ли они всю необходимую информацию для пользовательского ресурса). Однако информация для аутентификации будет передаваться в заголовках HTTP с использованием базовой аутентификации .
- Для удаления пользователей клиенты будут отправлять HTTP-вызов DELETE на https://example.com/users/ {идентификатор пользователя}. Опять же, аутентификационная информация будет передаваться в заголовках HTTP, а не в теле запроса. На самом деле, насколько я могу судить, тело запроса не требуется.
- Вместо того, чтобы указывать информацию об успехе / неудаче в XML-документе, сервер должен попытаться указать как можно больше через код состояния / описание состояния HTTP.
Теперь, насколько я могу судить, Основные преимущества преобразования этих сервисов в архитектуру RESTful:
- Мы бы использовали больше того, что может предложить HTTP, особенно в отношении аутентификации.
- URL-адреса немного более логичны, особенно если мы необходимо начать открывать ресурсы ниже уровня «пользователя» (например, https://example.com/users/ {идентификатор пользователя} / прочее).
- Это больше соответствует нативной архитектуре Интернета .
Я что-нибудь упустил? Я считаю, что использование архитектуры RESTful должно иметь больше преимуществ.
* Обратите внимание, что, когда я говорю «стиль RPC», я не имею в виду стандартизированный формат, такой как XML-RPC или SOAP.
задан Kevin Pang 12 May 2011 в 20:13
поделиться