REST — это архитектурный стиль, появившийся задолго до современных SPA и мобильных приложений. Аббревиатура расшифровывается как Representational State Transfer. Идея REST проста: каждое обращение к серверу представляет собой запрос к определённому ресурсу. У каждого ресурса есть свой URL, и для взаимодействия с ним используются стандартные HTTP-методы: GET, POST, PUT, DELETE и т. д.
Если у вас есть блог, REST может выглядеть так:
- GET /posts — получить список постов,
- GET /posts/1 — получить конкретный пост,
- POST /posts — создать новый,
- PUT /posts/1 — обновить существующий,
- DELETE /posts/1 — удалить.
REST прост в реализации, хорошо документируется и понятен большинству разработчиков. Именно поэтому он стал стандартом де-факто для API на протяжении последних двух десятилетий.
Однако у
REST есть ограничения. Например, каждый эндпоинт отдаёт фиксированную структуру данных. Нельзя «попросить» только определённые поля или сделать вложенный запрос к нескольким сущностям в рамках одного вызова. Это ведёт к проблемам: избыточной передаче данных, множественным запросам и снижению производительности, особенно в мобильных сетях.