Что именно означает REST? Что это, и почему это становится большим сейчас?
Я понять (я думаю) основную идею RESTful-ности. Семантически используйте методы HTTP - GET получает, PUT ставит, DELETE удаляет и т. Д. мне показалось, что я понял идею REST, но я путаю это с деталями реализации HTTP. Что является движущей силой отдыха, почему это становится важной вещью? Люди действительно использовали это в течение долгого времени в углу интернета, на который мой фонарик никогда не светил?
В разговоре Google упоминается, что протоколы публикации Atom имеют много синергии с реализациями RESTful. Есть мысли по этому поводу?
5 ответов
Вот как может выглядеть 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
Вот мой взгляд...
Привлекательность создания сервисов RESTful заключается в том, что вместо создания веб-сервисов с десятками функциональных методов мы стандартизируем четыре метода (Create,Retrieve, Update, Destroy):
- СООБЩЕНИЕ
- ПОЛУЧИТЬ
- ПОЛОЖИЛ
- УДАЛЯТЬ
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 и стандарт обмена сообщениями.
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, мы можем манипулировать объектами в вашем приложении. домен, написав предложения:
ПОЛУЧИТЕ http://yoursite.com/path/to/the/resource
УДАЛИТЬ http://yoursite.com/path/to/the/resource
POST http://yoursite.com/path/to/the/resource
так далее
архитектура хороша и все.
но это только теоретический взгляд, сценарии реального мира описаны во всех ссылках, опубликованных в ответах до моей.
Давайте перейдем к истории. Поговорим об исследовании Роя Филдинга - " Архитектурные стили и проектирование сетевых программных архитектур". Это большая газета, в которой много разных вещей. Но как стандартный инженер Как вы хотели бы объяснить ясный смысл REST (Репрезентативная передача состояния) и каков его архитектурный стиль.
Вот мой способ объяснить - "Что такое ОТДЫХ".
Посмотрите этот www(всемирная паутина), работающий поверх различного оборудования, например, маршрутизаторов, серверов, брандмауэров, облачных инфраструктур, коммутаторов,LAN,WAN. Общая цель этого www(всемирной паутины) распространять гипермедиа. Эта всемирная паутина оснащена различными услугами, например, информационными услугами, веб-сайтами, каналами YouTube, динамическими веб-сайтами, статическими веб-сайтами. Эта всемирная паутина использует протокол HTTP для распространения гипермедиа по всему миру с помощью механизма клиент / сервер. Этот протокол HTTP работает поверх TCP/IP или другого подходящего сетевого стека.
Этот протокол HTTP использует восемь методов для управления "протоколом распространения" или "архитектурным стилем распространения". Эти восемь методов, а именно: ОПЦИИ,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 по всему миру.
В приложении REST API Architecture Style веб-приложению необходимо спроектировать бизнес-логику (находится на сервере, например, Tomcat,Apache HTTP) со всем набором объектов объекта (например, Customer является объектом) и возможными операциями (например, "Получить информацию о клиенте на основе"). на идентификатор клиента ') на них. Эти возможные операции с этими объектами должны быть разработаны с четырьмя основными операциями или методами, а именно: создание, получение, обновление, удаление. Эти объекты называются ресурсами, и они представлены или представлены в форме, например, JSON или XML или что-то еще. У нас есть Клиент (Браузеры), который вызывает методы Create, Retrieve, Update, Delete (CRUD) для выполнения соответствующей функции на таком ресурсе, находящемся на Сервере.
Но, как объясняется концепция репрезентации, означает способ представления объектов бизнес-логики или объектов. но как насчет "Государственного трансферта"?
Передача состояния, рассказывает о "состоянии связи" между клиентом и сервером. В нем говорится о дизайне "передачи состояний" от Клиента к Серверу, например, Клиент сначала назвал операцию "Создать Клиента", после вызова того, что будет следующим состоянием клиента или состояниями клиента, которые может вызвать "клиент". Его состояние может быть "извлекать созданные данные клиента", "обновлять данные клиента" или что
REST - это архитектура, в которой ресурсы определяются и адресуются.
Чтобы лучше понять REST, вы должны взглянуть на ресурсно-ориентированную архитектуру (ROA), которая дает набор рекомендаций для фактической реализации архитектуры REST.
REST не обязательно должен быть через HTTP, но он является наиболее распространенным. REST был впервые создан одним из создателей HTTP.