REST API
REST API (Representational State Transfer Application Programming Interface) — это архитектурный стиль взаимодействия между клиентом и сервером, основанный на HTTP-запросах и передаче данных в стандартизированных форматах (чаще всего JSON). REST API используется для обмена информацией между приложениями — например, между сайтом и сервером, мобильным приложением и базой данных, CRM и онлайн-магазином.
Что такое REST API
REST расшифровывается как Representational State Transfer — «передача состояния представления».
Это не конкретный протокол, а набор принципов, по которым строятся современные веб-сервисы.
REST API — это интерфейс, позволяющий системам обмениваться данными без сохранения состояния (stateless) через стандартные методы HTTP.
Пример:
Когда пользователь заходит на сайт или приложение, оно отправляет запрос на сервер:
«Дай мне список товаров»
Сервер возвращает ответ в формате JSON — и приложение отображает нужные данные.
Принципы REST
- Клиент-серверная архитектура. Клиент (например, браузер или приложение) и сервер независимы. Клиент отвечает за интерфейс, сервер — за хранение и обработку данных.
- Отсутствие состояния (Stateless). Каждый запрос независим — сервер не хранит информацию о предыдущих взаимодействиях.
- Кэширование. Ответы сервера могут кэшироваться для ускорения работы.
- Единый интерфейс. Для всех запросов используются стандартные HTTP-методы (GET, POST, PUT, DELETE и т.д.).
- Иерархическая структура ресурсов. Все данные организованы в виде ресурсов (например, /users, /orders, /products), доступ к которым осуществляется через URL.
- Формат передачи данных. Обычно это JSON, реже — XML, YAML или HTML.
Основные HTTP-методы в REST API
| Метод | Назначение | Пример запроса |
| GET | Получение данных (чтение ресурса) | GET /products |
| POST | Создание нового ресурса | POST /products |
| PUT | Полное обновление ресурса | PUT /products/123 |
| PATCH | Частичное обновление ресурса | PATCH /products/123 |
| DELETE | Удаление ресурса | DELETE /products/123 |
Пример:
GET https://api.example.com/users/25
→ вернёт данные о пользователе с ID 25.
Пример REST API-запроса и ответа
Запрос (GET):
GET /api/products/15 HTTP/1.1
Host: example.com
Accept: application/json
Ответ:
{
«id»: 15,
«name»: «Apple iPhone 15»,
«price»: 145000,
«in_stock»: true
}
Форматы данных
REST API чаще всего использует JSON (JavaScript Object Notation) — лёгкий, человекочитаемый формат. Пример JSON-ответа:
{
«user»: {
«id»: 102,
«name»: «Анна Смирнова»,
«email»: «anna@example.com»
}
}
Также возможны:
- XML — более строгий формат для корпоративных систем;
- YAML — часто используется в DevOps и конфигурациях;
- CSV — для экспорта таблиц данных.
Пример REST API в действии
Представим онлайн-магазин:
| Действие пользователя | HTTP-запрос | URL |
| Посмотреть все товары | GET | /api/products |
| Получить товар по ID | GET | /api/products/45 |
| Добавить новый товар | POST | /api/products |
| Обновить товар | PUT | /api/products/45 |
| Удалить товар | DELETE | /api/products/45 |
Преимущества REST API
- Простота. Использует стандартные HTTP-запросы — не требует сложных протоколов.
- Гибкость. Можно использовать с любым языком программирования или платформой.
- Масштабируемость. Подходит для микросервисной архитектуры.
- Кэширование. Снижает нагрузку на сервер.
- Универсальность. Работает в браузерах, мобильных приложениях, IoT-устройствах.
Недостатки REST API
- Без сохранения состояния. Каждому запросу нужно заново передавать авторизацию и параметры.
- Нет строгого стандарта. Реализации REST могут отличаться.
- Неэффективен для сложных связей между данными. Например, при работе с графами (в таких случаях лучше GraphQL).
Авторизация в REST API
Для защиты данных REST API часто использует:
- API Key — простой токен-доступ;
- Basic Auth — логин + пароль;
- OAuth 2.0 / Bearer Token — стандарт для защищённых приложений;
- JWT (JSON Web Token) — токен, содержащий зашифрованные данные о пользователе.
Пример заголовка авторизации:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…
Инструменты для работы с REST API
- Postman — визуальное тестирование API-запросов.
- Insomnia — альтернатива с фокусом на разработку.
- cURL — консольный инструмент для HTTP-запросов.
- Swagger (OpenAPI) — документация и интерактивное тестирование API.
Лучшие практики REST API
Используйте читаемые URL:
/api/users/123/orders вместо /getUserOrders?id=123.
Возвращайте правильные коды ответов HTTP:
- 200 OK — запрос успешен;
- 201 Created — ресурс создан;
- 400 Bad Request — ошибка в запросе;
- 404 Not Found — ресурс не найден;
- 500 Internal Server Error — ошибка сервера.
Добавляйте пагинацию для больших выборок (?page=2&limit=20).
Документируйте API через Swagger / OpenAPI Specification.
Реализуйте версирование API: /api/v1/products, /api/v2/products.
Пример архитектуры REST API
Клиент (Web / Mobile)
↓
HTTP-запрос
↓
REST API (сервер)
↓
База данных
↓
Ответ JSON
Итог
REST API — это основа взаимодействия в современном вебе. Он обеспечивает стандартный, простой и гибкий способ обмена данными между системами, используется в сайтах, CRM, приложениях, микросервисах и аналитике.

