ESTful Web APIs 読書メモ(5)

Chapter.5 Domain-Specific Designs

  • ドメイン特化設計
    • ドメイン特化のmedia-typeではなく、一般的なmedia-typeにアプリケーションセマンティクスを加える方が良い
      • Aplication/vnd.xxx.Maze+XML
    • API設計する際に平均的な開発者が最初に選択する
    • RFC5988
      • リンク間の関係を定義
  • Maze+XMLでスタート地点を得るためにAPI callメタファを使うと
    • 迷路一覧をGET
      • rel="maze"で対象の迷路が判明
    • 対象の迷路をGET
      • rel="start"でエントランスが判明
    • 迷路のエントランスセルをGET
      • relで各方角のセルが判明
  • API callメタファ
    • サーバーの実装の詳細が露出しがちになる
    • サーバーとクライアントが密結合となる
    • APIをおいそれと修正出来なくなる
  • ドメイン特化API

    • 作成者
      • human-readableな仕様を書く
      • その仕様にmedia-typeを関連付けIANAに登録する
    • 利用者
      • IANAレジストリで未知のmedia-typeを探す
      • 登録された仕様を読み、利用方法を学ぶ
  • クライアント

    • human-driven
    • clawler
      • 全てのハイパーメディアをたどる
    • script
      • 最初に遭遇したハイパーメディアのみをたどる
    • monitor
      • ハイパーメディアを列挙する
    • agent
      • アルゴリズムを基づき、ハイパーメディアを取捨選択する
  • 自動化されたクライアントは、ハイパーメディアAPIのメリットを最も享受できる

    • ゴールが見えている
    • ゴールへのみちが示されている

つづき・・・

RESTful Web APIs 読書メモ(6)