Реализация архитектуры с использованием технологии REST. Презентация 02.10_Тема 2.3_ИСиП 21-9-1_Деникаев_ПИДИ. Реализация архитектуры с использованием технологии rest
Скачать 1.3 Mb.
|
«Реализация архитектуры с использованием технологии REST» Выполнил: Деникаев Кирилл Группа: ИСиП-21-9-1 Преподаватель: Апевалина О.С Что такое REST REST (Representational State Transfer - «передача состояния представления») представляет собой согласованный набор ограничений, учитываемых при проектировании распределённой гипермедиа-системы. В определённых случаях (интернет-магазины, поисковые системы, прочие системы, основанные на данных) это приводит к повышению производительности и упрощению архитектуры. В широком смысле компоненты в REST взаимодействуют наподобие взаимодействия клиентов и серверов во Всемирной паутине. REST является альтернативой RPC. В сети Интернет вызов удалённой процедуры может представлять собой обычный HTTP-запрос (обычно «GET» или «POST»; такой запрос называют «REST-запрос»), а необходимые данные передаются в качестве параметров запроса. Для веб-служб, построенных с учётом REST (то есть не нарушающих накладываемых им ограничений), применяют термин «RESTful» Требования к архитектуре REST 1. Модель клиент-сервер 2. Отсутствие состояния В период между запросами клиента никакая информация о состоянии клиента на сервере не хранится. 3. Кэширование Кэширование (кэш) - некоторой промежуточный буфер, в котором хранятся данные. 4. Единообразие интерфейса 4. Единообразие интерфейса Унифицированные интерфейсы позволяют каждому из сервисов развиваться независимо. Требования к унифицированным интерфейсам: - Идентификация ресурсов - Манипуляция ресурсами через представление - «Самоописываемые» сообщения - Гипермедиа как средство изменения состояния приложения 5. Слои 5. Слои Клиент обычно не способен точно определить, взаимодействует он напрямую с сервером или же с промежуточным узлом, в связи с иерархической структурой сетей (подразумевая, что такая структура образует слои). 6. Код по требованию (необязательное ограничение) REST может позволить расширить функциональность клиента за счёт загрузки кода с сервера в виде апплетов или сценариев. Апплет - это несамостоятельный компонент программного обеспечения, работающий в контексте другого, полновесного приложения, предназначенный для одной узкой задачи и не имеющий ценности в отрыве от базового приложения. Сценарий - это программа, имеющая дело с готовыми программными компонентами Учет интересов клиентов и выбор оптимального решения Отличия REST от SOAP: - REST поддерживает различные форматы: text, JSON, XML; SOAP - только XML, - REST работает только по HTTP(S), a SOAP может работать с различными протоколами - REST может работать с ресурсами. Каждый URL это представление какого-либо ресурса. SOAP работает с операциями, которые реализуют какую-либо бизнес логику с помощью нескольких интерфейсов, - SOAP на основе чтения не может быть помещена в кэш, a REST в этом случае может быть закэширован, - SOAP поддерживает SSL и WS-security, в то время как REST - только SSL. SOAP и REST Использование REST для построения Web-сервисов Как известно, web-сервис – это приложение работающее в World Wide Web и доступ к которому предоставляется по HTTP-протоколу, а обмен информации идет с помощью формата XML. Следовательно, формат данных передаваемых в теле запроса будет всегда XML. Для каждой единицы информации (info) определяется 5 действий. А именно: - GET /info/ (Index) – получает список всех объектов. Как правило, это упрощенный список, т.е. содержащий только поля идентификатора и названия объекта, без остальных данных. - GET /info/{id} (View) – получает полную информацию о объекте. - PUT /info/ или POST /info/ (Create) – создает новый объект. Данные передаются в теле запроса без применения кодирования, даже urlencode. В PHP тело запроса может быть получено таким способом: Какие можно сделать из этого выводы Как видно, в архитектура REST очень проста в плане использования. По виду пришедшего запроса сразу можно определить, что он делает, не разбираясь в форматах (в отличие от SOAP, XML-RPC). Данные передаются без применения дополнительных слоев, поэтому REST считается менее ресурсоемким, поскольку не надо парсить запрос чтоб понять что он должен сделать и не надо переводить данные из одного формата в другой. |