ESTful Web APIs 読書メモ(5)
Chapter.5 Domain-Specific Designs
- ドメイン特化設計
- ドメイン特化のmedia-typeではなく、一般的なmedia-typeにアプリケーションセマンティクスを加える方が良い
- Aplication/vnd.xxx.Maze+XML
- API設計する際に平均的な開発者が最初に選択する
- RFC5988
- リンク間の関係を定義
- ドメイン特化のmedia-typeではなく、一般的なmedia-typeにアプリケーションセマンティクスを加える方が良い
- Maze+XMLでスタート地点を得るためにAPI callメタファを使うと
- 迷路一覧をGET
- rel="maze"で対象の迷路が判明
- 対象の迷路をGET
- rel="start"でエントランスが判明
- 迷路のエントランスセルをGET
- relで各方角のセルが判明
- 迷路一覧をGET
- API callメタファ
- サーバーの実装の詳細が露出しがちになる
- サーバーとクライアントが密結合となる
- APIをおいそれと修正出来なくなる
ドメイン特化API
- 作成者
- human-readableな仕様を書く
- その仕様にmedia-typeを関連付けIANAに登録する
- 利用者
- IANAレジストリで未知のmedia-typeを探す
- 登録された仕様を読み、利用方法を学ぶ
- 作成者
クライアント
- human-driven
- clawler
- 全てのハイパーメディアをたどる
- script
- 最初に遭遇したハイパーメディアのみをたどる
- monitor
- ハイパーメディアを列挙する
- agent
- アルゴリズムを基づき、ハイパーメディアを取捨選択する
自動化されたクライアントは、ハイパーメディアAPIのメリットを最も享受できる
- ゴールが見えている
- ゴールへのみちが示されている