Новини високих технологій
» » REST API - що це? REST: переклад. Representational State Transfer

REST API - що це? REST: переклад. Representational State Transfer

2-09-2017, 21:20
3 380
REST API (Representational State Transfer), або веб-служби RESTful, — що це? REST в перекладі c англійського «репрезентативна передача стану». Це спосіб забезпечення взаємодії між комп'ютерними системами в Інтернеті. REST-сумісні веб-служби, що дозволяють запитувачем систем отримувати доступ до текстових уявленням веб-ресурсів та керувати ними, використовуючи єдиний і стандартний набір операцій. Існують і інші форми веб-служб, які містять свої власні довільні набори операцій, наприклад WSDL і SOAP.


REST API: що це? Визначення поняття

Веб-ресурси були спочатку визначені у Всесвітній павутині як документи чи файли, ідентифіковані їх URL-адресами. Сьогодні вони мають набагато більш загальне і абстрактне визначення, що охоплює кожен предмет або сутність, які можуть бути ідентифіковані, названі, адресовані або оброблені в Мережі. Веб-служби REST API запити, отруєні в URI-ресурсу, викликають відповідь, який може бути оформлений в XML, HTML, JSON або в якомусь іншому форматі. Відповідь може підтвердити, що деякі зміни були внесені в зберігаємий ресурс, також надати гіпертекстові посилання на інші ресурси пов'язані і їх колекції. Використання HTTP як найбільш поширеного протоколу відноситься до типів доступних операцій, які зумовлені командами PUT, DELETE, HTTP GET, POST. Використовуючи протоколи без урахування стану і стандартні операції, системи REST націлені на швидку продуктивність, надійність і здатність до зростання шляхом повторного використання компонентів, якими можна керувати і які можна оновлювати, не зачіпаючи систему в цілому. Використання REST часто краще, ніж більш важкий стиль SOAP (Simple Object Access Protocol), оскільки REST не використовує смуги пропускання, що робить його більш відповідним для використання в Інтернеті. Для підходу SOAP вимагається запис або використання наданої серверної програми (для обслуговування даних) та клієнтської програми (для запиту даних).


Історія технології

Термін «репрезентативна передача стану» був введений і визначений у 2000 році Роєм Філдінга в його дисертації «Архітектурні стилі і дизайн мережевих архітектур програмного забезпечення». Він виробив архітектурний стиль REST паралельно з HTTP 111996-1999 років, заснований на існуючому проекті HTTP 101996 року. У ретроспективному погляді на розвиток технології Філдінг сказав про те, що впродовж процесу стандартизації HTTP він був покликаний захищати вибір дизайну в Інтернеті. Це дуже складне завдання в рамках процесу, приймає пропозиції від кого-небудь по темі, яка швидко стає центром всієї галузі. У Філдінга були коментарі від більш ніж 500 розробників, багато з яких відмінні інженери з багаторічним досвідом. Він повинен був пояснити все, починаючи з найбільш абстрактних понять веб-взаємодії і закінчуючи точними деталями синтаксису HTTP. Цей процес відточував його модель до основного набору принципів, властивостей і обмежень, які тепер називаються REST.

Переваги

Особливості стилю REST впливають на наступні архітектурні властивості: Продуктивність - взаємодія компонентів є домінуючим властивістю сприйняття користувачами продуктивності і результативності мережі. Масштабованість для підтримки максимальної кількості компонентів, тестування REST API і взаємодії між ними. Простота єдиного інтерфейсу і авторизації REST API. Можливість модифікацій компонентів для задоволення мінливих потреб (навіть під час роботи програми). Видимість зв'язку між складовими та сервісними агентами. Можливість переносити компоненти, переміщаючи їх програмний код з даними. Надійність — висока відмовостійкість при наявності збоїв у складі, роз'ємів або даних.
Обумовлено поділ проблем між клієнтами тим, що це REST API дозволяє спрощувати реалізацію компонентів, зменшує складність семантики коннектора, підвищує ефективність налаштування продуктивності і підвищує масштабованість чистих серверних компонентів. Складні системні обмеження дозволяють посередникам-проксі, шлюзів і брандмауерів впроваджуватися у різних точках зв'язку без зміни інтерфейсів між компонентами, що дозволяє їм здійснювати REST-переклад повідомлень або підвищувати продуктивність за допомогою широкомасштабного загального кешування. Прикладом REST API є той факт, коли взаємодія не залежить від стану запитів, стандартні методи і типи медіа використовуються для позначення семантики і обміну інформацією, а відповіді явно вказують на кешируемость.

Формальні та архітектурні обмеження

Шість керівних обмежень характеризують систему RESTful. Вони обмежують способи, якими сервер може обробляти та приймати запити клієнтів. Діючи у рамках цих обмежень, служба отримує бажані нефункціональні властивості, такі як продуктивність, масштабованість, простота, мінливість, видимість, мобільність і надійність. Якщо служба порушує будь-які необхідні обмеження, її не можна вважати RESTful.
Перші обмеження ставляться до архітектурного стилю «клієнт-сервер». Поділ проблем користувальницького інтерфейсу з проблемами зберігання даних покращує переносимість інтерфейсу користувача на декількох платформах. Він також покращує масштабованість за рахунок спрощення серверних компонентів. Можливо, найбільш значним для Мережі є те, що поділ дозволяє компонентам розвиватися самостійно, тим самим підтримуючи вимоги інтернет-масштабу до безлічі організаційних доменів.

Безпека

REST не надає вбудованої підтримки безпеки. Це дуже важливо при проектуванні веб-сервісів REST - вимоги безпеки і проектування виконуються заздалегідь. Веб-сервіси REST використовують HTTP GET, POST, PUT і DELETE з CRUD-операцій. PUT і DELETE не підтримуються багатьма браузерами і найчастіше відключені на рівні сервера з-за можливого порушення конфіденційності. Якщо він не налаштований належним чином на рівні сервера і клієнта, будь-який сторонній користувач зможе створити ресурс з допомогою PUT-методу або знищити використовуваний ресурс DELETE. При розробці вимог безпеки для веб-сервісів слід враховувати дані моменти.

Архітектурні елементи

Ключовим аспектом REST є характер і стан його елементів даних. У стилі REST існує чотири поняття, які описують поведінку та стан інформації. Ресурс — це об'єкт (логічний чи фізичний), доступний в Інтернеті. Це може бути документ, що зберігається у файловій системі сервера або рядок в таблиці бази даних. Кінцевий користувач взаємодіє з ресурсом для досягнення певної мети. Для проектування системи за допомогою REST розробник повинен думати про бізнес-об'єктах як ресурсах і про те, як вони можуть бути адресовані.
URI - унікально ідентифікує ресурс. Цей параметр робить ресурс адресним і може бути змінений. Ресурси змінюються з використанням протоколу програми - такого як HTTP. Уявлення - це дані/метадані стану ресурсу в момент часу. Клієнт отримує уявлення ресурсу при запиті URI. Вид ресурсу може бути закодований в одному або декількох передаються форматах, таких як XML, HTML, JSON, RSS, REST API для java. Ці формати можуть бути погоджені за допомогою механізму узгодження вмісту. Посилання - дозволяє додатком виконувати перехід з одного стану в інший. Кожен ресурс має бути підключений до інших ресурсів. Подання має запропонувати посилання на наступний перехід. Добре пов'язане додаток дозволяє користувачеві самостійно відкрити інтерфейс.

Конектор

Роз'єм з'єднувача являє собою абстрактний інтерфейс, який опосередковує зв'язок між компонентами. Оскільки взаємодії REST не мають стану, з'єднувач не повинен зберігати інформацію про стані. Отже, зв'язок між компонентами може відбуватися паралельно.
Клієнт і сервер є основними REST-коннекторами. Клієнт ініціює запит, а сервер його обробляє. Кеш - ще один вид роз'єму. Кешування може бути реалізовано на клієнтських, серверних або проміжних рівнях. Це зменшує час очікування і використання мережі.

Компоненти

Компоненти виконують набір чітко визначених методів на ресурсі, створює уявлення для захоплення поточного або передбачуваного стану. User-Agent - використовує клієнтський з'єднувач для ініціювання запиту. Origin-сервер використовує серверний коннектор для відповіді на запит. Проксі - посередник, що використовується на стороні клієнта для забезпечення інкапсуляції інтерфейсу іншими службами. Він також виконує переклад даних і захист. Шлюз - посередник, використовується на сервері для забезпечення інкапсуляції інтерфейсу іншими службами.

Перспективи розвитку

Завжди актуальне питання: REST API — що це для сучасних інтернет-технологій? REST - основа сучасної веб-архітектури, яка розвивається шляхом аналізу недоліків вже існуючих стилів і введення нових доповнень до неї. Цілі REST API — що це? Це прагнення використовувати існуючі стилі з координованим набором обмежень для мінімізації мережевий зв'язку та максимізувати незалежну еволюцію компонентів для досягнення масштабованості. Це нова архітектура розподіленої системи гіпермедіа. З появою смартфонів, планшетів і т. п. гаджетів буде впроваджуватися мережа і її масштабованість.
Цікаво по темі
Як зробити адаптивне меню? Приклади
Як зробити адаптивне меню? Приклади
Адаптивне меню для сучасного сайту – не просто розкіш, а необхідність. Достаток сучасних девайсів вимагає від веб-майстрів такої верстки, яка б
Метапошукові системи: приклади, принцип роботи
Метапошукові системи: приклади, принцип роботи
Пошук інформації за допомогою метапоискових систем набагато ефективніше класичного використання різних ПС. Адже вони відображають набагато більше
Що таке http заголовок?
Що таке http заголовок?
З допомогою заголовків http відбувається обмін службовими даними між клієнтом і сервером. Ця інформація залишається невидимою для користувачів, але