REST API и модель зрелости Ричардсона
Два стиля API
С точки зрения прикладного взаимодействия (без участия посредников вроде брокеров) все API можно разделить на два стиля:
- REST (Representational State Transfer).
- RPC (Remote Procedure Call).
REST (Representational State Transfer) — это архитектурный стиль взаимодействия компонентов в распределённой системе. В контексте API под REST обычно понимают набор принципов проектирования эндпоинтов, основанных на ресурсах и HTTP-глаголах.
Модель зрелости REST API (Richardson Maturity Model)

Модель зрелости Ричардсона описывает четыре уровня (от 0 до 3), которые отражают, насколько API соответствует REST-принципам.
Уровень 0 (RPC-стиль)
- Один endpoint на все команды.
- Один глагол — почти всегда POST.
- Что именно нужно сделать, указывается в теле запроса (JSON, XML и т. д.).
Фактически это не REST, а чистый RPC-стиль, просто завернутый в HTTP.
Уровень 1
- Появляются разные endpoint'ы (разные пути для разных ресурсов).
- Но глагол всё ещё один — обычно POST (или, в лучшем случае, GET для чтения и POST для всего остального).
- Ресурсный подход (коллекции, отдельные объекты) уже может использоваться, но глаголы применяются некорректно.
Уровень 2 (канонический REST)
- Корректное использование HTTP-глаголов: GET для чтения, POST для создания, PUT/PATCH для обновления, DELETE для удаления.
- Правильное проектирование endpoint'ов: путь ведёт либо к коллекции (
/users), либо к конкретному объекту (/users/42). - Это тот самый REST, который чаще всего имеют в виду на практике.
Уровень 3 (HATEOAS)
- Добавляет в ответы ссылки (hypermedia), которые описывают возможные следующие действия.
- В реальной практике практически не используется.
Что важно понимать про REST
- REST — это не протокол, а архитектурный стиль (набор рекомендаций).
- На практике «REST API» чаще всего означает Уровень 2 модели Ричардсона: правильные HTTP-глаголы и ресурсные эндпоинты.
- REST не является серебряной пулей — для многих сценариев (особенно back-to-back и микросервисных) RPC-стиль может быть удобнее и эффективнее.