Что подразумевается под 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 — это не конкретный синтаксис, а стиль проектирования интерфейса.
На примере выше логика такая:
GET /api/users— клиент запрашивает коллекцию ресурсов.GET /api/users/42— обращение к конкретному ресурсу по идентификатору.POST /api/users— создание нового ресурса в коллекции.PUT/PATCH /api/users/42— изменение существующего ресурса.DELETE /api/users/42— удаление ресурса.
Ключевые моменты:
- Ресурсы идентифицируются через URL, а не через действия в адресе.
- HTTP-методы используются по назначению:
GETдля чтения,POSTдля создания,PUT/PATCHдля обновления,DELETEдля удаления. - RESTful API обычно stateless: сервер не должен хранить состояние сессии клиента между запросами.
- Ответы должны быть предсказуемыми и использовать стандартные HTTP-коды.
- API считается более “RESTful”, если соблюдает единообразие интерфейса и ресурсоориентированность.
- На практике часто говорят “REST API”, имея в виду API, который следует основным принципам REST, даже если не соблюдены все строгие ограничения.