Вопрос проверяет понимание принципов REST и его отличий от RPC, GraphQL и других архитектурных подходов.
REST API строится вокруг ресурсов и использует стандартные HTTP-методы. Он является stateless, то есть сервер не хранит состояние клиента между запросами. В отличие от RPC, REST ориентирован на ресурсы, а не на функции. В отличие от GraphQL, структура ответа фиксирована сервером.
REST — это архитектурный стиль построения веб-сервисов.
Определение:
REST (Representational State Transfer) — это подход к построению API, основанный на ресурсах, HTTP-методах и отсутствии состояния между запросами.
Ключевые принципы:
Stateless
Каждый запрос содержит всю необходимую информацию.
Ресурсная модель
URL описывает ресурс:
/users/1
Использование HTTP-методов
Например:
GET — получить
POST — создать
PUT — обновить
DELETE — удалить
RPC:
Ориентирован на действия
URL часто выглядит как:
/createUser
REST:
Ориентирован на ресурсы:
/users
GraphQL:
Один endpoint
Клиент выбирает поля
REST:
Несколько endpoint
Ответ фиксирован
WebSocket:
Постоянное соединение
Двусторонний обмен
REST:
Запрос-ответ
Нет постоянного соединения
REST отличается тем, что опирается на ресурсы, HTTP-методы и stateless-подход. Это делает его простым, масштабируемым и широко применяемым в backend-разработке.