Что именно означает REST? Что это, и почему это становится большим сейчас? - PullRequest
49 голосов
/ 28 октября 2008

Я понимаю (я думаю) основную идею RESTful-ности. Использовать методы HTTP семантически - GET получает, PUT помещает, DELETE удаляет и т.д. Что является движущей силой отдыха, почему это становится важной вещью? Люди действительно использовали это в течение долгого времени в углу интернета, на который никогда не светил мой фонарик? <Ч /> В разговоре Google упоминается, что протоколы публикации Atom имеют много синергии с реализациями RESTful. Есть мысли по этому поводу?

Ответы [ 5 ]

54 голосов
/ 04 июля 2009

Вот как может выглядеть REST:

POST /user
fname=John&lname=Doe&age=25

Сервер отвечает:

201 Created
Location: /user/123

В дальнейшем вы можете получить информацию о пользователе:

GET /user/123

Сервер отвечает (при условии ответа XML):

200 OK
<user><fname>John</fname><lname>Doe</lname><age>25</age></user>

Для обновления:

PUT /user/123
fname=Johnny
18 голосов
/ 28 октября 2008

Вот мой взгляд ...

Привлекательность создания сервисов RESTful заключается в том, что вместо создания веб-сервисов с десятками функциональных методов мы стандартизируем четыре метода (создание, получение, обновление, уничтожение):

  • POST
  • GET
  • PUT
  • DELETE

REST становится популярным, поскольку он также представляет собой стандартизацию форматов обмена сообщениями на прикладном уровне. Хотя HTTP использует четыре основных глагола REST, общий формат сообщений HTTP в HTML не является контрактом на создание приложений.

Лучшее объяснение, которое я слышал, - это сравнение TCP / IP с RSS.

Ethernet представляет собой стандартизацию в физической сети. Интернет-протокол (IP) представляет собой стандартизацию выше по стеку и имеет несколько различных разновидностей (TCP, UDP и т. Д.). Внедрение «Протокола управления передачей» (гарантированная доставка пакетов) определило контракты на связь, которые открыли нам целый новый набор сервисов (FTP, Gopher, Telnet, HTTP) для прикладного уровня.

По аналогии, мы приняли XML как «Протокол», теперь мы начинаем стандартизировать форматы сообщений. RSS быстро становится основой многих сервисов RESTful. Google GData API - это вариант RSS / ATOM.

"Настольный гаджет" - отличная реализация этой рекламы: простой клиент может использовать базовый веб-контент или сложные гибридные приложения, используя общий API и стандарт обмена сообщениями.

11 голосов
/ 28 октября 2008

HTTP в настоящее время используется недостаточно и используется неправильно.

Обычно мы используем только два метода HTTP: GET и POST, но есть и другие: DELETE, PUT и т. Д. (http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html)

Таким образом, если у нас есть ресурсы, определяемые URL-адресами RESTful (каждый объект домена в вашем приложении имеет уникальный URL-адрес в форме http://yoursite.com/path/to/the/resource) и достойную реализацию HTTP, мы можем манипулировать объектами в вашем домене, написав предложения:

GET http://yoursite.com/path/to/the/resource

УДАЛИТЬ http://yoursite.com/path/to/the/resource

POST http://yoursite.com/path/to/the/resource

и т.д.

архитектура хороша и все.

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

10 голосов
/ 11 сентября 2015

Давайте перейдем к истории, поговорим об исследованиях Роя Филдинга - « Архитектурные стили и проектирование сетевых программных архитектур ». Это большая газета, в которой много разных вещей. Но как стандартный инженер Как вы хотели бы объяснить ясное значение REST (Передача репрезентативного состояния) и каков его архитектурный стиль.

Вот мой способ объяснить - «Что такое ОТДЫХ».

Посмотрите этот www (всемирная паутина), работающий поверх различных аппаратных средств, например. маршрутизаторы, серверы, межсетевые экраны, облачные инфраструктуры, коммутаторы, LAN, WAN. Общая цель этого www (всемирной паутины) распространять гипермедиа . Эта всемирная паутина оснащена различными услугами, например, информационные сервисы, веб-сайты, каналы YouTube, динамические сайты, статические сайты. Эта всемирная паутина использует протокол HTTP для распространения гипермедиа по всему миру с помощью механизма клиент / сервер. Этот протокол HTTP работает поверх TCP / IP или другого подходящего сетевого стека.

Этот HTTP-протокол использует восемь методов для управления «протоколом распространения» или «архитектурным стилем распространения». Эти восемь методов, а именно: ОПЦИИ, ПОЛУЧИТЬ, ГОЛОВКА, ПОСТ, ПОСТАВИТЬ, УДАЛИТЬ, TRACE, СОЕДИНИТЬ.

Но помимо этого HTTP, веб-приложения используют свой собственный способ распространения гипермедиа, например, веб-приложения используют веб-сервисы, которые тесно связаны с клиентами и серверами, или «веб-приложения используют свой собственный способ разработки клиент / сервер». механизм создания такого канала распространения поверх HTTP.

Что Исследование Роя Филдинга говорит, что эти восемь методов OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT HTTP настолько успешны, чтобы доставить HyperMedia по всему миру на вершине Разнообразие аппаратных ресурсов и сетевых стеков с механизмом клиент / сервер. Почему бы не использовать подобную стратегию и с нашим веб-приложением? При этом GET, POST, DELETE и PUT используются чаще всего. поэтому четыре метода доставляют HyperMedia по всему миру.

В REST API Архитектурный стиль приложения веб-приложения должны разрабатывать бизнес-логику (находится на сервере, например, Tomcat, Apache HTTP) со всем набором объектов объекта (например, Клиент - это субъект) и возможные операции (например, «Получить информацию о клиенте на основе идентификатора клиента») над ними. Эти возможные операции с этими объектами должны быть разработаны с четырьмя основными операциями или методами, а именно: создание, получение, обновление, удаление. Эти объекты называются ресурсами, и они представлены или представлены в форме, например JSON или XML или что-то еще. У нас есть Клиент (Браузеры), который вызывает методы Создать, Извлечь, Обновить, Удалить (CRUD) для выполнения соответствующей функции на таком ресурсе, находящемся на Сервере.

Но, как объяснено понятие Представление , означает способ представления объектов бизнес-логики или объектов. а как насчет «Государственного перевода»?

State Transfer , в котором говорится о «состоянии связи» от Клиента к Серверу. В нем говорится о дизайне «передачи состояний» от Клиента к Серверу, например. Клиент сначала вызвал операцию «Создать клиента», после вызова этого, каким будет следующее состояние клиента или состояния клиента, которые может вызвать «клиент». Его состояние может быть «извлекать созданные данные клиента», «обновлять данные клиента» или что

5 голосов
/ 28 октября 2008

REST - это архитектура, в которой ресурсы определяются и адресуются.

Чтобы лучше понять REST, вы должны взглянуть на Ресурсно-ориентированную архитектуру (ROA) , которая дает набор рекомендаций для фактической реализации архитектуры REST.

REST не обязательно должен быть через HTTP, но он является наиболее распространенным. REST был впервые создан одним из создателей HTTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...