API

API (англ. Application Programming Interface — інтерфейс прикладного програмування) — опис способів (набір класів, процедур, функцій, структур або констант), якими одна комп’ютерна програма може взаємодіяти з іншою.


REST API

image.png

REST (англ. REpresentational State Transfer — передача представлення стану) — це популярний архітектурний стиль для створення розподілених гіпертекстових систем і, зокрема, веб‑сервісів. REST був описаний і популяризований у 2000 році Роєм Філдінгом, одним із авторів протоколу HTTP. У своїй роботі над HTTP 1.1 Філдінг заклав основні принципи REST, спираючись на досвід HTTP 1.0 та роботу Всесвітньої павутини.

Основні ідеї REST

  1. Уніфікований інтерфейс

    Всі ресурси повинні бути доступні через однорідний інтерфейс (URI), а операції над ними — через стандартні HTTP‑методи (GET, POST, PUT, DELETE тощо).

  2. Безстанова взаємодія

    Кожен запит від клієнта до сервера має містити всю необхідну інформацію для його обробки. Сервер не зберігає жодного контексту між запитами.

  3. Кешування

    Відповіді сервера мають містити інструкції щодо кешування (наприклад, заголовки Cache-Control), щоб підвищити продуктивність і зменшити навантаження на сервер.

  4. Клієнт‑серверна архітектура

    Відповідальність за зберігання й обробку даних лежить на сервері, а за інтерфейс і взаємодію з користувачем — на клієнті. Це забезпечує незалежне еволюціювання обох частин.

  5. Рівень шаруватості

    Архітектура може складатися з декількох шарів (проксі, балансувальники навантаження, кеші тощо), причому кожен шар взаємодіє тільки з суміжними, не знаючи про внутрішню реалізацію інших.


Формати обміну даними

RESTful-сервіси найчастіше віддають дані в одному з таких стандартних форматів: