「REST APIを作っているが、RESTとは何かを正確に説明できない」。
そう感じたとき手に取ったのがこの本だ。HTTPメソッドの使い分けはなんとなくできていたが、「なぜPUTはべき等でPOSTはそうでないのか」「URIはどう設計すべきか」といった問いに、根拠を持って答えられなかった。
本の全体構成
5部構成で、WebのアーキテクチャからHTTP・URI・ハイパーメディアフォーマット・Webサービス設計まで体系的にカバーしている。
| 部 | 内容 |
|---|---|
| 第1部 Web概論 | Webとは何か、歴史、RESTの誕生 |
| 第2部 URI | URIの仕様と設計 |
| 第3部 HTTP | HTTP基本・メソッド・ステータスコード・ヘッダ |
| 第4部 ハイパーメディアフォーマット | HTML・JSON・Atom |
| 第5部 Webサービスの設計 | REST APIの設計実践 |
章ごとの評価
第1部・第2部:Web概論とURI
Webがなぜここまで普及したか、RESTがどういう経緯で生まれたかという歴史的文脈から入る。「なぜRESTはステートレスでなければならないか」を理解するには、この歴史的背景が欠かせない。
URIの章(4〜5章)は短いが密度が高い。「クールなURIは変わらない」という考え方と、変わりにくいURIを作るための原則は、今でもAPI設計の判断基準として参照している。詳細は望ましいURIとは何かにまとめた。
第3部:HTTP
HTTPメソッドとステータスコードの章(7〜8章)は本書のハイライトだ。「GETは安全で冪等、POSTは安全でも冪等でもない」という整理は、APIを設計するときの根拠になる。ヘッダの章(9章)ではキャッシュ・認証・コンテントネゴシエーションを扱っており、実務で避けて通れないトピックが集まっている。
HTTPの実務知識はHTTPを正しく理解する、キャッシュの深掘りはHTTPキャッシュ完全ガイドにまとめた。
第5部:Webサービスの設計
読み取り専用API(15章)・書き込み可能API(16章)・リソース設計(17章)の3章で構成されており、ここが実践的に最も役立つ。
特に16章の「楽観的ロック・悲観的ロック」「トランザクションリソース」「べき等性」の解説は、設計レビューのときに何度も参照した。詳細はREST APIの書き込み設計にまとめている。
スピンオフ記事一覧
この本をもとに当ブログで書いた関連記事:
- REST APIの設計原則を学び直す — REST・リソース指向・冪等性
- 望ましいURIとは何か — URI設計のベストプラクティス
- HTTPを正しく理解する — メソッド・ステータスコード・ヘッダ
- WebアーキテクチャとRESTが生まれた理由 — Webの設計思想・歴史編
- HTTPキャッシュ完全ガイド — ETag・Cache-Control・CDN
- REST APIの書き込み設計 — 冪等性・トランザクション・楽観的ロック
どんな人に向いているか
| 読者タイプ | おすすめ度 |
|---|---|
| REST APIを作っているがRESTをちゃんと理解したい | ★★★★★ |
| HTTPメソッドの使い分けに自信がない | ★★★★★ |
| URI設計でチーム内に統一基準を作りたい | ★★★★★ |
| バックエンドエンジニアとして設計力を上げたい | ★★★★☆ |
| フロントエンドのみでAPIを消費する側 | ★★★☆☆ |
正直に言うと
第4部のAtom/AtomPubは2024年現在ではほぼ実務で使わない。JSONとREST APIが主流の今、この章は読み飛ばしても支障ない。
一方で、第3部のHTTPと第5部の設計は今でも色あせない内容だ。HTTPの仕様は変わっていないし、REST設計の原則も普遍的だ。「なんとなくAPIを作っている」状態を脱するために、この本を読む価値は今でも十分にある。
まとめ
REST APIを日常的に作るエンジニアなら、一度は読んでおいてほしい一冊だ。
「なぜそう設計するか」の根拠を持つことは、レビューでの説明力・設計判断の速度・チームへの知識共有すべてに影響する。HTTPとRESTの基礎を体系的に学ぶ最短ルートとして、今も筆頭に挙げられる本だ。