Sobes.tech
Назад к вопросам
Junior — Middle
48

Можете объяснить основные идеи и концепцию протокола REST?

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

REST — это архитектурный стиль для построения веб-API поверх HTTP. Важно показать понимание ресурсов, стандартных HTTP-методов и того, что сервер не хранит состояние сессии клиента между запросами. Также ожидают, что будет понятно, почему REST упрощает интеграцию и масштабирование.

Определение:

REST (Representational State Transfer) — это набор принципов построения API, где всё вокруг ресурсов, доступ к ним идёт через URL, а операции выполняются стандартными HTTP-методами. Обычно ресурсами считаются сущности вроде пользователей, заказов или товаров. Клиент отправляет запрос, сервер возвращает представление ресурса, чаще всего в JSON.

REST не является конкретным протоколом или стандартной библиотекой. Это способ проектирования интерфейсов, который опирается на возможности HTTP: методы, коды ответов, заголовки, кэширование и статус-коды.

Пример использования:

Например, API интернет-магазина может выглядеть так:

GET /api/products/42
POST /api/products
PUT /api/products/42
DELETE /api/products/42
  • GET /api/products/42 — получить товар.
  • POST /api/products — создать товар.
  • PUT /api/products/42 — обновить товар.
  • DELETE /api/products/42 — удалить товар.

Ответ обычно возвращается в JSON:

{
  "id": 42,
  "name": "Keyboard",
  "price": 99.99
}

Пояснение кода:

Код не требуется, потому что REST — это концепция проектирования API, а не язык программирования. На практике пример выше читается так: URL указывает на ресурс, HTTP-метод — на действие, а тело ответа содержит данные ресурса.

Шаги взаимодействия выглядят так:

  1. Клиент обращается к конкретному ресурсу по URL.
  2. HTTP-метод определяет операцию: получить, создать, изменить или удалить.
  3. Сервер обрабатывает запрос и возвращает статус, например 200 OK, 201 Created или 404 Not Found.
  4. Тело ответа содержит представление ресурса, часто в JSON.

Ключевые моменты:

  • REST строится вокруг ресурсов, а не вокруг действий.
  • Для операций используются стандартные HTTP-методы: GET, POST, PUT, PATCH, DELETE.
  • Запросы должны быть stateless: каждый запрос содержит всю нужную информацию.
  • Важны корректные HTTP-коды ответов и заголовки.
  • REST API обычно использует JSON как формат представления данных.
  • Хорошо спроектированный REST API проще поддерживать, тестировать и масштабировать.