RESTful Web APIs 読書メモ(14)
Appendix C. An API Designer's Guide to the Fielding Dissertation
アーキテクチャ特性
- Low Entry-barrier
- FTPやTelnetのようにたくさんのコマンドを駆使する必要がない
- 使い方を学ぶのが容易で、サイト構築も容易
- Extensibility
- Distributed Hypermedia
- Internet-scale
アーキテクチャ制約
- Client-Servet
- Statelessness
- クライアントがリクエストを作らなければ、サーバーはクライアントの存在を知らない
- Caching
- キャッシュから前回のレスポンスを再利用することで、通信を抑える
- Uniform Interface
- リソースの一意化
- 表現を通したリソースの操作
- サーバーはクライアントに表現を送ることで、リソース状態を記述
- クライアントはサーバーにアプリケーション状態を送ることでリソース状態を操作する
- 自己記述メッセージ
- すべての情報は、リクエストやレスポンスがリンクを介してメッセージ自身に含まれることを理解する必要がある
- ハイパーメディア制約
- サーバーはハイパーメディアメニューを送ることでアプリケーション状態を操作する
- メニューとは、クライアントが自由に操作できるオプション
- Layered System
- クライアントとサーバーの間に入れられたプロキシは不可視
- Code on Demand
- サーバーはデータと一緒に実行コードを送ることができる
- クライアントのリクエストで、自動的に配置される
- コードの変更でも自動的に再配置される