REST API (Representational State Transfer Application Programming Interface) — формально это архитектурный стиль для создания веб-сервисов, основанный на стандартных HTTP-методах (GET, POST, PUT, DELETE и др.) и принципах REST.
Буквально REST — Representational State Transfer — это передача (Transfer) репрезентативного или «самоописываемого» состояния (Representational State), т.е. язык или правила отправки и получения запросов.
API (Application Programming Interface — программный интерфейс приложений) — это линия связи между приложениями. Используя API, одно приложение обращается к другому, получает в ответ какую-то информацию, или своим запросом изменяет информацию на другой стороне провода.
Например, битряк интернет-магазина спрашивает бухгалтерскую/складскую эску, а есть ли реально в наличии такой-то товар, и если есть — получает ОК, выписывает счет клиенту и перезаписывает в эску резерв или новый остаток.
🔹 Основные принципы REST:
-
- Клиент-серверная архитектура – разделение клиента (например, браузера или мобильного приложения) и сервера (который обрабатывает запросы).
-
- Stateless (без состояния) – каждый запрос содержит всю необходимую информацию для его обработки (сервер не хранит состояние клиента между запросами).
-
- Кэширование – ответы сервера могут кэшироваться для повышения производительности.
-
- Единообразие интерфейса – стандартизация работы с ресурсами через URI (например,
/users
) и HTTP-методы.
- Единообразие интерфейса – стандартизация работы с ресурсами через URI (например,
-
- Слоистая система – клиент не знает, взаимодействует ли он напрямую с сервером или через промежуточные узлы (прокси, балансировщики нагрузки).
-
- Код по требованию (опционально) – сервер может передавать клиенту исполняемый код (например, JavaScript).
🔹 Как работает REST API?
-
- Ресурсы определяются через URI (например,
https://api.example.com/users
).
- Ресурсы определяются через URI (например,
-
- HTTP-методы указывают действие:
-
GET
– получить данные (например, список пользователей).
-
POST
– создать новый ресурс (например, добавить пользователя).
-
PUT/PATCH
– обновить ресурс (полное/частичное изменение).
-
DELETE
– удалить ресурс.
-
- Формат данных – обычно JSON (реже XML).
🔹 Пример REST API запроса:
GET https://api.example.com/users/1
Ответ (JSON):
{
"id": 1,
"name": "Иван Иванов",
"email": "ivan@example.com"
}
🔹 Отличия REST от других API (например, SOAP, GraphQL):
-
- REST – простой, основан на HTTP, использует JSON/XML.
-
- SOAP – строгий протокол с XML, сложнее в настройке.
-
- GraphQL – позволяет клиенту запрашивать только нужные данные (в REST ответ фиксирован).
🔹 Где применяется?
-
- Мобильные приложения.
-
- Веб-приложения (React, Angular, Vue).
-
- Микросервисная архитектура.
-
- Интеграция между сервисами (например, платежные системы, соцсети).
REST API популярен благодаря простоте, масштабируемости и удобству работы с современными фронтенд-фреймворками.