SlideShare a Scribd company logo
1 of 31
REST
API
Что такое веб-сервис?
 Веб-служба, веб-сервис (англ. web
service) — идентифицируемая веб-
адресом программная система со
стандартизированными интерфейсами.
 Веб-службы могут взаимодействовать
друг с другом и со сторонними
приложениями посредством
сообщений, основанных на
определённых протоколах (SOAP, XML-
RPC, REST и т. д.). Веб-служба
является единицей модульности при
использовании сервис-
ориентированной архитектуры
приложения.

 В обиходе веб-сервисами называют
услуги, оказываемые в Интернете. В
этом употреблении термин требует
уточнения, идёт ли речь о поиске, веб-
почте, хранении документов, файлов,
закладок и т. п. Такими веб-сервисами
можно пользоваться независимо от
компьютера, браузера или места
доступа в Интернет.
Примеры
 Веб-службы обеспечивают взаимодействие
программных систем независимо от платформы.
Например, Windows-C#-клиент может
обмениваться данными с Java-сервером,
работающим под Linux.
 Веб-службы основаны на базе открытых
стандартов и протоколов. Благодаря
использованию JSON/XML достигается простота
разработки и отладки веб-служб.
 Использование интернет-протокола
обеспечивает HTTP-взаимодействие
Достоинства
 Меньшая производительность и больший размер
сетевого трафика за счёт использования текстовых
JSON/XML-сообщений. Однако на некоторых веб-
серверах возможна настройка сжатия сетевого трафика.
 Аспекты безопасности. Ответственные веб-службы
должны использовать кодирование, возможно —
требовать аутентификации пользователя. Достаточно ли
здесь применения HTTPS, или предпочтительны такие
решения, как XML Signature, XML Encryption или SAML —
должно быть решено разработчиком.
Недостатки
 Клиент — сервер
 (англ. client–server) — вычислительная или
сетевая архитектура, в которой задания
или сетевая нагрузка распределены между
поставщиками услуг, называемыми
серверами, и заказчиками услуг,
называемыми клиентами.
 Обычно эти программы расположены на разных
вычислительных машинах и взаимодействуют
между собой через вычислительную сеть
посредством сетевых протоколов, но они могут
быть расположены также и на одной машине.
Достоинства
 Отсутствие дублирования кода
программы-сервера программами-
клиентами.
 Так как все вычисления выполняются на
сервере, то требования к компьютерам, на
которых установлен клиент, снижаются.
 Все данные хранятся на сервере, который, как
правило, защищён гораздо лучше большинства
клиентов. На сервере проще организовать контроль
полномочий, чтобы разрешать доступ к данным
только клиентам с соответствующими правами
доступа.
Недостатки
 Требуется специалист на поддержку
системы – сис админ

 Высокая стоимость оборудования.
 Неработоспособность
сервера может сделать
неработоспособной всю
вычислительную сеть.
Неработоспособным
сервером следует считать
сервер,
производительности
которого не хватает на
обслуживание всех
клиентов, а также сервер,
находящийся на ремонте,
профилактике и т. п.
REST
 «REST» был введён Роем Филдингом
, одним из создателей протокола
«HTTP», лишь в 2000 году. В своей
диссертации «Архитектурные стили и
дизайн сетевых программных
архитектур» в Калифорнийском
университете в Ирвайне он подвёл
теоретическую основу под способ
взаимодействия клиентов и серверов
во Всемирной паутине,
абстрагировав его и назвав
«передачей представительного
состояния».
История
 REST -
 REpresentational
 State
 Transfer
 передача состояния представления
 REST ресурсоориентирован:
 Вещи/сущ-ое vs действие/глагол
 REST: http://somesite.com/resource/1/edit
 NOT: http://somesite.com/UpdateResource.php
 Модель клиент-сервер (client-server)
 Отсутствие состояния (stateless)
 Кэширование (cacheable)
 Единообразие интерфейса (uniform interface)
 Слои (layered system)
 * Код по требованию (code on demand)
Требования к арх-ре REST
 Сервер не содержит данных клиента
между запросами
 Состояния сессий хранятся на клиенте
 Каждый запрос содержит достаточно
информации для обработки
 Клиент инициирует отправку запросов,
когда он готов перейти в новое состояние
Стейтлес
 Кеш на сервере (Redis)
 Кеш на клиенте (хранение ассетов)
 HTTP/1.1 кешинг
 Proxy
Кешировани
 - Задает интерфейс(пораядок/протокол
взаимодействия)
 - Интерфейсы позволяют каждому из сервисов
развиваться независимо.
 - Упрощает и разделяет арх-ру
 - Фундаментально для всей концепции REST’а:
 HTTP методы (GET POST PUT DELETE)
 URIs (имя ресурсов)
 HTTP ответы: коды(2**, 3**, 4**, 5**)
 https://app.swaggerhub.com/apis/lavandosovich/roo
ms_elama_api/1.0.0
Единообразие Интерфейса
 Клиент не может навернека знать, кто
именно отдал респонс (сервер, прокси,
кеш, мидлвейр(прослойка))
 Повышает маштабируемость
Слои
*Код по требованию
 Сервер может расширять клиентские
возможности – передача исполнимой(Java-
applet, JavaScript сценарий) логики на
клиент
Конец

More Related Content

What's hot

Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservicesscassau
 
7 создание веб сервисов
7 создание веб сервисов7 создание веб сервисов
7 создание веб сервисовKewpaN
 
RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)Sergey Skvortsov
 
Rest Xslt павел кудинов
Rest Xslt   павел кудиновRest Xslt   павел кудинов
Rest Xslt павел кудиновMedia Gorod
 
Метаданные в модели REST
Метаданные в модели RESTМетаданные в модели REST
Метаданные в модели RESTColdbeans Software
 

What's hot (8)

Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservices
 
7 создание веб сервисов
7 создание веб сервисов7 создание веб сервисов
7 создание веб сервисов
 
REST
RESTREST
REST
 
RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)
 
Rest Xslt павел кудинов
Rest Xslt   павел кудиновRest Xslt   павел кудинов
Rest Xslt павел кудинов
 
Asupz presentation
Asupz presentationAsupz presentation
Asupz presentation
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
Метаданные в модели REST
Метаданные в модели RESTМетаданные в модели REST
Метаданные в модели REST
 

Similar to REST API JL.elama

03 web server_architecture_ru
03 web server_architecture_ru03 web server_architecture_ru
03 web server_architecture_rumcroitor
 
Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5Dmitriy Krukov
 
Мировые информационные ресурсы. Лекция 2
Мировые информационные ресурсы. Лекция 2Мировые информационные ресурсы. Лекция 2
Мировые информационные ресурсы. Лекция 2Dmitriy Krukov
 
Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Alexey Furmanov
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukInterSystems
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéInterSystems CEE
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"Fwdays
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.Igor Shkulipa
 
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBТехнология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBFedor Malyshkin
 
Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data ServicesMedia Gorod
 
Лекции и задания по рнр
Лекции и задания по рнрЛекции и задания по рнр
Лекции и задания по рнрRauan Ibraikhan
 
Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)Andrey Akulov
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIGetDev.NET
 
Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...adam93
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Windows azure общий обзор
Windows azure общий обзорWindows azure общий обзор
Windows azure общий обзорMicrosoft
 
Bloch, bodoff руководство. сервлеты
Bloch, bodoff   руководство. сервлетыBloch, bodoff   руководство. сервлеты
Bloch, bodoff руководство. сервлетыalexey1991
 

Similar to REST API JL.elama (20)

03 web server_architecture_ru
03 web server_architecture_ru03 web server_architecture_ru
03 web server_architecture_ru
 
Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5
 
Мировые информационные ресурсы. Лекция 2
Мировые информационные ресурсы. Лекция 2Мировые информационные ресурсы. Лекция 2
Мировые информационные ресурсы. Лекция 2
 
Лекция 1. Модель OSI.
Лекция 1. Модель OSI.Лекция 1. Модель OSI.
Лекция 1. Модель OSI.
 
Web and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard LebedyukWeb and mobile development for intersystems caché, Eduard Lebedyuk
Web and mobile development for intersystems caché, Eduard Lebedyuk
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.
 
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXBТехнология создания веб-сервисов на базе стандарта JAX-WS & JAXB
Технология создания веб-сервисов на базе стандарта JAX-WS & JAXB
 
Sql Server Data Services
Sql Server Data ServicesSql Server Data Services
Sql Server Data Services
 
Протокол HTTP
Протокол HTTPПротокол HTTP
Протокол HTTP
 
Лекции и задания по рнр
Лекции и задания по рнрЛекции и задания по рнр
Лекции и задания по рнр
 
Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...
 
Ms it cup win-team - мевв
Ms it cup   win-team - меввMs it cup   win-team - мевв
Ms it cup win-team - мевв
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Windows azure общий обзор
Windows azure общий обзорWindows azure общий обзор
Windows azure общий обзор
 
Bloch, bodoff руководство. сервлеты
Bloch, bodoff   руководство. сервлетыBloch, bodoff   руководство. сервлеты
Bloch, bodoff руководство. сервлеты
 

REST API JL.elama

  • 3.  Веб-служба, веб-сервис (англ. web service) — идентифицируемая веб- адресом программная система со стандартизированными интерфейсами.
  • 4.  Веб-службы могут взаимодействовать друг с другом и со сторонними приложениями посредством сообщений, основанных на определённых протоколах (SOAP, XML- RPC, REST и т. д.). Веб-служба является единицей модульности при использовании сервис- ориентированной архитектуры приложения. 
  • 5.
  • 6.  В обиходе веб-сервисами называют услуги, оказываемые в Интернете. В этом употреблении термин требует уточнения, идёт ли речь о поиске, веб- почте, хранении документов, файлов, закладок и т. п. Такими веб-сервисами можно пользоваться независимо от компьютера, браузера или места доступа в Интернет.
  • 8.  Веб-службы обеспечивают взаимодействие программных систем независимо от платформы. Например, Windows-C#-клиент может обмениваться данными с Java-сервером, работающим под Linux.  Веб-службы основаны на базе открытых стандартов и протоколов. Благодаря использованию JSON/XML достигается простота разработки и отладки веб-служб.  Использование интернет-протокола обеспечивает HTTP-взаимодействие Достоинства
  • 9.  Меньшая производительность и больший размер сетевого трафика за счёт использования текстовых JSON/XML-сообщений. Однако на некоторых веб- серверах возможна настройка сжатия сетевого трафика.  Аспекты безопасности. Ответственные веб-службы должны использовать кодирование, возможно — требовать аутентификации пользователя. Достаточно ли здесь применения HTTPS, или предпочтительны такие решения, как XML Signature, XML Encryption или SAML — должно быть решено разработчиком. Недостатки
  • 10.  Клиент — сервер
  • 11.  (англ. client–server) — вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами.
  • 12.  Обычно эти программы расположены на разных вычислительных машинах и взаимодействуют между собой через вычислительную сеть посредством сетевых протоколов, но они могут быть расположены также и на одной машине.
  • 14.  Отсутствие дублирования кода программы-сервера программами- клиентами.
  • 15.  Так как все вычисления выполняются на сервере, то требования к компьютерам, на которых установлен клиент, снижаются.
  • 16.  Все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще организовать контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа.
  • 18.  Требуется специалист на поддержку системы – сис админ 
  • 19.  Высокая стоимость оборудования.
  • 20.  Неработоспособность сервера может сделать неработоспособной всю вычислительную сеть. Неработоспособным сервером следует считать сервер, производительности которого не хватает на обслуживание всех клиентов, а также сервер, находящийся на ремонте, профилактике и т. п.
  • 21. REST
  • 22.  «REST» был введён Роем Филдингом , одним из создателей протокола «HTTP», лишь в 2000 году. В своей диссертации «Архитектурные стили и дизайн сетевых программных архитектур» в Калифорнийском университете в Ирвайне он подвёл теоретическую основу под способ взаимодействия клиентов и серверов во Всемирной паутине, абстрагировав его и назвав «передачей представительного состояния». История
  • 23.  REST -  REpresentational  State  Transfer  передача состояния представления
  • 24.  REST ресурсоориентирован:  Вещи/сущ-ое vs действие/глагол  REST: http://somesite.com/resource/1/edit  NOT: http://somesite.com/UpdateResource.php
  • 25.  Модель клиент-сервер (client-server)  Отсутствие состояния (stateless)  Кэширование (cacheable)  Единообразие интерфейса (uniform interface)  Слои (layered system)  * Код по требованию (code on demand) Требования к арх-ре REST
  • 26.  Сервер не содержит данных клиента между запросами  Состояния сессий хранятся на клиенте  Каждый запрос содержит достаточно информации для обработки  Клиент инициирует отправку запросов, когда он готов перейти в новое состояние Стейтлес
  • 27.  Кеш на сервере (Redis)  Кеш на клиенте (хранение ассетов)  HTTP/1.1 кешинг  Proxy Кешировани
  • 28.  - Задает интерфейс(пораядок/протокол взаимодействия)  - Интерфейсы позволяют каждому из сервисов развиваться независимо.  - Упрощает и разделяет арх-ру  - Фундаментально для всей концепции REST’а:  HTTP методы (GET POST PUT DELETE)  URIs (имя ресурсов)  HTTP ответы: коды(2**, 3**, 4**, 5**)  https://app.swaggerhub.com/apis/lavandosovich/roo ms_elama_api/1.0.0 Единообразие Интерфейса
  • 29.  Клиент не может навернека знать, кто именно отдал респонс (сервер, прокси, кеш, мидлвейр(прослойка))  Повышает маштабируемость Слои
  • 30. *Код по требованию  Сервер может расширять клиентские возможности – передача исполнимой(Java- applet, JavaScript сценарий) логики на клиент