API и интеграции
Что такое REST API?
REST API — это самый распространённый стиль построения веб-API, в котором у каждого объекта системы есть свой адрес, а действие с ним задаёт HTTP-метод: GET — получить, POST — создать, PUT — изменить, DELETE — удалить.
Адрес описывает ресурс, а метод — операцию. Запрос GET /users/42 возвращает данные пользователя, а DELETE /users/42 удаляет его. В ответе есть данные, обычно в формате JSON, и код статуса: 200 — успех, 404 — объект не найден, 401 — нет авторизации.
Ещё одно важное свойство REST — отсутствие состояния: каждый запрос самостоятелен и содержит всё необходимое, в том числе токен авторизации. Сервер не помнит предыдущих запросов, и это упрощает масштабирование.
Где применяется
REST — фактический стандарт для связи фронтенда с бэкендом и сервисов между собой. На нём построены публичные API GitHub, Stripe, Telegram и большинство корпоративных систем. В Java REST API пишут контроллерами Spring Boot, в Python — на FastAPI или Django REST Framework, в Node.js — на Express.
Вокруг REST сложились и рабочие инструменты. Разработчик описывает методы в OpenAPI и получает готовую документацию, QA-инженер собирает коллекции запросов в Postman, автоматизатор пишет проверки на REST Assured или requests, а DevOps по кодам ответов следит, исправно ли работает сервис.
Пример
Мобильное приложение банка показывает историю операций: запрос GET /accounts/42/transactions?limit=20 возвращает двадцать последних операций и код 200. Если токен просрочен, приходит код 401, и приложение незаметно для пользователя обновляет токен и повторяет запрос.
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
Authorization: Bearer <token>
{
"name": "Анна",
"email": "anna@example.com"
}
HTTP/1.1 201 Created
Location: /api/users/42
{
"id": 42,
"name": "Анна",
"email": "anna@example.com"
}
Частые вопросы
Чем REST отличается от SOAP?
SOAP — строгий протокол на основе XML с обязательным описанием контракта и собственными правилами безопасности. REST — набор договорённостей поверх обычного HTTP, обычно с JSON. SOAP ещё встречается в банках и государственных системах, а новые публичные API почти всегда делают на REST.
Что означают коды ответа 401 и 403?
401 означает, что сервер вас не узнал: токен не передан, просрочен или неправильный. 403 — вас узнали, но прав на это действие нет. В первом случае помогает повторная авторизация, во втором — изменение прав пользователя, а повторять запрос нет смысла.
Обязательно ли REST API возвращает JSON?
Нет, формат не является частью REST. Почти всегда это JSON, потому что он компактный и поддерживается везде, но тот же метод может вернуть XML, CSV или файл. Нужный формат клиент указывает в заголовке Accept.
Что такое идемпотентность запроса?
Идемпотентный запрос можно повторить несколько раз, и результат будет тот же. Такими задуманы GET, PUT и DELETE, а POST — нет: два одинаковых POST-запроса создадут два заказа. Поэтому повторную отправку платежей защищают уникальным ключом операции.
Обучение программированию в OWU
Освойте профессию в IT на практических курсах с менторами и реальными проектами.
Выбрать курс