REST API
REST API (Representational State Transfer Application Programming Interface) — це стиль побудови вебінтерфейсів, у якому система обміну даними між клієнтом і сервером спирається на стандартні HTTP-методи та роботу з ресурсами. У практиці веброзробки під REST API зазвичай мають на увазі набір адрес, через які застосунок може отримувати, створювати, змінювати або вилучати дані без прямого доступу до внутрішньої логіки сервера. Англійська назва — RESTful API; так часто називають API, що дотримується принципів REST.
Як це працює
Кожен об’єкт у системі подають як ресурс: користувача, замовлення, товар, повідомлення. Для ресурсу задають зрозумілий URL, а дії виражають через HTTP-методи: GET — отримати дані, POST — створити новий запис, PUT або PATCH — оновити, DELETE — видалити. Сервер відповідає структурованими даними, найчастіше у форматі JSON, а клієнт обробляє їх у браузері, мобільному застосунку чи іншому сервісі.
Що робить інтерфейс зручним
- Статусність відповіді. Сервер повертає код стану, за яким легко зрозуміти, чи запит виконано успішно, чи сталася помилка.
- Передбачувані адреси. Ресурси мають логічні шляхи на кшталт /users або /orders/15.
- Незалежність клієнта. Один і той самий API можуть використовувати різні фронтенди та зовнішні системи.
- Відсутність зайвого стану. Кожен запит має містити все потрібне для обробки, без опори на приховану серверну сесію.
Де застосовують RESTful API
Такий підхід поширений у вебсервісах, інтернет-магазинах, CRM-системах, мобільних застосунках і хмарних платформах. Через REST API фронтенд отримує дані для сторінок, сторонні сервіси інтегруються між собою, а внутрішні модулі великого продукту обмінюються інформацією через узгоджений контракт. Саме через простоту і зрозумілу модель ресурсів REST часто стає базовим вибором для публічних і внутрішніх API.
Чим корисний і де має межі
REST добре підходить для типових операцій із даними, коли потрібні читання, створення, редагування і видалення записів. Він простіший для проєктування та тестування, ніж більш складні підходи. Водночас для задач із дуже гнучкими запитами, складною агрегацією або потоковою передачею даних REST може бути незручним: тоді розробники інколи обирають інші стилі взаємодії.
Невеликий приклад
Щоб отримати список користувачів, клієнт надсилає запит GET /users. Щоб додати нового користувача, використовують POST /users із даними в тілі запиту. Якщо потрібно змінити ім’я конкретного користувача, звертаються до PATCH /users/15. Усі ці дії працюють з одним набором ресурсів, але через різні методи та адреси.