REST-Based APIs
- REpresentational State Transfer
REST-Based (RESTful) APIs
-
6つの性質
- クライアント-サーバモデル
- ステートレス
- キャッシュ可能/不可能の明確な記述
- 統一的なインタフェース
- 階層構造
- Code-on-demand
- とくに最初の3つ
- HTTPは必須でないことに注意
REST APIs and HTTP
- HTTPは必須でないが、多くのRESTful APIはHTTP上で定義される
-
なぜならばHTTPは…
- クライアント-サーバモデル
- 本質的にステートレス
- キャッシュ可能/不可能をHTTPヘッダで表現できる
Software CRUD Actions and HTTP Verbs
- 統一的なインタフェース
- HTTP各メソッドが対応しているという話
Using URIs with HTTP to Specify the Resource
- 階層構造
- URIのパス部分でリソースを表現することで実現できる
Data Serialization and JSON
The Need for a Data Model with APIs
- サーバとクライアントとで変数の内部表現が違うので必要
Data Serialization Languages
JSON
- JavaScript Object Notation
- 【補】JSON5なんてのが出てきていたりする
XML
- eXtentible Markup Language
- マークアップ言語としての機能がそのままデータ構造の表現にも有用で、データシリアライゼーションに使われるに至る
YAML
-
YAML Ain’t a Markup Language
- 初期はYet Another Markup Languageだったらしい
- が、マークアップよりもデータ表現のほうが重視されてYAML Ain’t~に
-
REST APIでは使われない
- 【所感】確かに見たことない
- 自動化の設定ファイルなどで使うことが多い