【れすとまちゅりてぃもでる】

RESTマチュリティモデル とは?

💡 REST APIの成績表、Level 0からLevel 3まで4段階の通知表
📌 このページのポイント
Richardson REST成熟度モデル Lv.0 The Swamp of POX 単一URLにPOSTだけ。HTTP関係なし Lv.1 リソース /users, /orders などリソースごとにURLを分離 Lv.2 HTTPメソッド GET / POST / PUT / DELETE を正しく使い分け Lv.3 HATEOAS レスポンスに次のアクションのリンクを含める 多くのAPIはLevel 2。Level 3まで到達しているAPIは少ない
Richardson REST成熟度モデルの4段階
ひよこ ひよこ

RESTマチュリティモデルって何を測るの?

ペンギン先生 ペンギン先生

REST APIがどれくらいRESTの原則に沿っているかを4段階で評価するモデルだよ。Level 0が最も原始的で、Level 3が最も成熟した状態だね

ひよこ ひよこ

Level 0ってどんな状態?

ペンギン先生 ペンギン先生

1つのURLに全部POSTで送るような状態だよ。/api にPOSTして、ボディの中に何をしたいか書く。SOAPやXML-RPCがこれに近いね

ひよこ ひよこ

多くのAPIはどのレベルなの?

ペンギン先生 ペンギン先生

実は世の中のほとんどのREST APIはLevel 2で止まってるよ。リソースごとにURLを分けてHTTPメソッドを使い分けるところまではやるけど、Level 3のHATEOASまで実装してるのは少ないんだ

ひよこ ひよこ

Level 3を目指すべきなの?

ペンギン先生 ペンギン先生

必ずしもそうとは限らないよ。HATEOASはクライアントがリンクを辿って動的にAPIを発見できる仕組みだけど、実装コストが高いし、フロントエンドとの開発フローに合わないことも多い。Level 2をしっかり守るだけでも十分良いAPI設計と言えるんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
RESTマチュリティモデル」って出てきたら「REST APIの成熟度を4段階で測るものさし」と思えればだいたいOK!
📖 おまけ:英語の意味
「Richardson Maturity Model」 = リチャードソン成熟度モデル
💬 提唱者のLeonard Richardsonの名前が付いていて、Maturityは「成熟度」という意味だよ
← 用語集にもどる