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

Что подразумевается под RESTful API и каким признакам он соответствует?

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

sobes.tech AI

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

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

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

RESTful API — это API, построенный по принципам REST (Representational State Transfer). В нём сущности представлены как ресурсы, у каждого ресурса есть уникальный URI, а клиент взаимодействует с ними через стандартные HTTP-методы: GET, POST, PUT, PATCH, DELETE.

Ключевая идея — сервер не хранит контекст сессии между запросами, а каждый запрос содержит всё необходимое для его обработки.

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

Например, для сущности users API может выглядеть так:

GET    /api/users          // получить список пользователей
GET    /api/users/42       // получить пользователя по id
POST   /api/users          // создать пользователя
PUT    /api/users/42       // заменить данные пользователя
PATCH  /api/users/42       // частично обновить пользователя
DELETE /api/users/42       // удалить пользователя

Такой интерфейс легко понимать: URL указывает на ресурс, а HTTP-метод — на действие.

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

Код не требуется: RESTful API — это не конкретный синтаксис, а стиль проектирования интерфейса.

На примере выше логика такая:

  1. GET /api/users — клиент запрашивает коллекцию ресурсов.
  2. GET /api/users/42 — обращение к конкретному ресурсу по идентификатору.
  3. POST /api/users — создание нового ресурса в коллекции.
  4. PUT/PATCH /api/users/42 — изменение существующего ресурса.
  5. DELETE /api/users/42 — удаление ресурса.

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

  • Ресурсы идентифицируются через URL, а не через действия в адресе.
  • HTTP-методы используются по назначению: GET для чтения, POST для создания, PUT/PATCH для обновления, DELETE для удаления.
  • RESTful API обычно stateless: сервер не должен хранить состояние сессии клиента между запросами.
  • Ответы должны быть предсказуемыми и использовать стандартные HTTP-коды.
  • API считается более “RESTful”, если соблюдает единообразие интерфейса и ресурсоориентированность.
  • На практике часто говорят “REST API”, имея в виду API, который следует основным принципам REST, даже если не соблюдены все строгие ограничения.