Что именно означает REST? Что это такое, и почему он становится большим сейчас?

Я понимаю (я думаю) основную идею RESTful-ness. Используйте методы HTTP семантически - GET получает, PUT puts, DELETE удаляет и т.д. Правильно? Думаю, что я понял идею REST, но я думаю, что я запутался в деталях реализации HTTP. Какова главная идея отдыха, почему это становится важной вещью? Действительно ли люди использовали его в течение длительного времени, в углу интернетов, который мой фонарь никогда не светился?


В разговоре Google упоминаются протоколы публикации Atom, имеющие сильное взаимодействие с реализациями RESTful. Любые мысли об этом?

Ответ 1

Вот что может выглядеть 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

Ответ 2

Здесь мой взгляд...

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

  • POST
  • GET
  • PUT
  • DELETE

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

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

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

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

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

Ответ 3

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

и т.д.

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

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

Ответ 4

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

Вот мой способ объяснить - "Что такое REST".

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

Этот протокол HTTP использует восемь методов управления "протоколом распространения" или "Архитектурный стиль распространения". Эти восемь методов: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT.

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

Что Roy Fielding Research говорит, что эти восемь методов: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT HTTP - это настолько успешной, чтобы поставлять HyperMedia по всему миру поверх множества аппаратных ресурсов и сетевых стеков с механизмом клиент/сервер. Почему мы не используем аналогичную стратегию с нашим веб-приложением. На этом GET, POST, DELETE и PUT используются самые. поэтому четыре метода предоставляют HyperMedia по всему миру.

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

Но, как объяснялось, понятие Представление означает способ представления объектов бизнес-логики или объектов. но как насчет "State Transfer?".

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

Ответ 5

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

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

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