Prog Academy
RU UA
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 его пишут контроллерами Spring Boot, в Python — на FastAPI или Django REST Framework, в Node.js — на Express.

Вокруг REST выстроен и рабочий инструментарий. Разработчик описывает методы в OpenAPI и получает готовую документацию, QA-инженер собирает коллекции запросов в Postman, автоматизатор пишет проверки на RestAssured или 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": "[email protected]"
}

HTTP/1.1 201 Created
Location: /api/users/42

{
  "id": 42,
  "name": "Анна",
  "email": "[email protected]"
}
Создание пользователя: метод и адрес задают операцию, тело передаёт данные, код ответа сообщает результат.

Частые вопросы

Чем 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 создадут два заказа. Поэтому повторную отправку платежей защищают уникальным ключом операции.

Связанные термины