RESTful Web APIs 読書メモ(1)

Chapter 1. Surfing the Web

  • Webは分散コンピューティングの力を秘めている

Webを形作るテクノロジ

  • URL
    • リソースの識別子
  • HTTPプロトコル
    • URLにHTTPリクエストを投げ、リソースを表現として取得する
  • HTMLフォーマット

Addressability

すべてのリソースが自身を時期別するURLを持つこと

自己記述性メッセージ

Webはリンクを介した対話を提供する

標準化されたメソッド

  • HTTPメソッド(RFC2616)
    • GET
      • リソースの表現を交換すること
        • 表現 = リソース状態を時にはtextで、時には画像として、求められた形で返すこと
    • HEAD
    • POST
    • PUT
    • DELETE

3章参照

Application State

クライアントサイドの状態

  • アプリケーション状態はユーザーからのインタラクション、またはサーバーからの応答で更新されて

    • マイクロブログに投稿する内容
    • 選択したチェックボックス
    • カートの中身

Resource state

サーバーサイドの状態

  • クライアントは直接リソース状態を制御できない

    • クライアントに保持されるアプリケーション状態と、サーバーに保存されたリソース状態を交換することで間接的に制御
    • リソースに記録された内容
    • 投稿された内容
    • ある日時の天気

Connectedness

wwwは連結性(connectedness)の原理で動いている(HATEOASと呼ばれる)

HATEOAS = hypermedia as the engine of application state

hypermedia = アプリケーション状態のエンジン = linkをクリックしたり、formから提出すること

REST APIの問題点

  • しばしば別の、Human-readableドキュメントでAPIの利用方法が説明される
    • 自己記述性メッセージとConnectednessの原則を破壊する
  • サイトが変更されても、古いクライアントアプリでも動くよう後方互換性をもたせるべき

Semantic Challenge

  • Web APIの最大の挑戦
    • ドキュメント構造の理解と、その意味を理解することの間のセマンティクスギャップを埋めること

つづき・・・

RESTful Web APIs 読書メモ(2)