middle
Что такое Richardson Maturity Model?
Richardson Maturity Model (Модель зрелости Ричардсона) — модель, описывающая четыре уровня зрелости REST API, предложенная Леонардом Ричардсоном.
| Уровень | Название | Описание |
|---|---|---|
| 0 | «Болото POX» (The Swamp of POX) | Один URI, один HTTP-метод (обычно POST). Фактически RPC через HTTP |
| 1 | Ресурсы (Resources) | Каждый ресурс имеет собственный URI, но используется один метод |
| 2 | HTTP-глаголы (HTTP Verbs) | Используются правильные HTTP-методы и коды ответов |
| 3 | HATEOAS (Hypermedia Controls) | Ответы содержат гиперссылки на доступные действия и связанные ресурсы |
Примеры каждого уровня
Уровень 0 — RPC через HTTP:
Пример
POST /api HTTP/1.1
{"action": "getUser", "userId": 42}
Уровень 1 — Ресурсы:
Пример
POST /api/users/42
{"action": "get"}
Уровень 2 — HTTP-глаголы (большинство современных API):
Пример
GET /api/users/42 → 200 OK
POST /api/users → 201 Created
DELETE /api/users/42 → 204 No Content
Уровень 3 — HATEOAS:
Пример
{
"id": 42,
"name": "Иван",
"_links": {
"self": {"href": "/api/users/42"},
"orders": {"href": "/api/users/42/orders"},
"delete": {"href": "/api/users/42", "method": "DELETE"}
}
}
Согласно Рою Филдингу, только API уровня 3 по-настоящему является RESTful. Однако на практике большинство API реализуют уровень 2, что считается приемлемым.
На собеседовании: нужно перечислить все четыре уровня с краткими примерами. Частая ошибка — не знать, что большинство реальных API находятся на уровне 2, или не упомянуть, что уровень 3 (HATEOAS) — теоретический идеал.