RESTful APIとは
RESTの原則に則って構築されたWebシステムのHTTPでの呼び出しインターフェースのこと。
RESTとは
REpresentational State Transferの略で、分散型システムにおける複数のソフトウェアを連携させるのに適した設計原則の集合、考え方のこと。Roy Fieldingが2000年に提唱した。
また、RESTを語るうえで避けては通れない「リソース(リソース指向アーキテクチャ(ROA))」という概念があるが、これは「リソース指向アーキテクチャとは何なのか」に投稿したのでそちらを参照していただきたい。
RESTの原則
主に以下の4つの原則から成る。
- アドレス可能性(Addressability)
- 提供する情報がURIを通して表現できること。全ての情報はURIで表現される一意なアドレスを持っていること。
- ステートレス性(Stateless)
- HTTPをベースにしたステートレスなクライアント/サーバプロトコルであること。セッション等の状態管理はせず、やり取りされる情報はそれ自体で完結して解釈できること。
- 接続性(Connectability)
- 情報の内部に、別の情報や(その情報の別の)状態へのリンクを含めることができること。
- 統一インターフェース(Uniform Interface)
- 情報の操作(取得、作成、更新、削除)は全てHTTPメソッド(GET、POST、PUT、DELETE)を利用すること。
詳細はリソース指向アーキテクチャとは何なのかを参照。
RESTful APIを使うメリット
- URIに規律が生まれることで、APIを利用するサービス開発者が楽になる
- URIに規律が生まれることで、API開発者もURIからソースのどの部分なのかが容易にわかる
- ブラウザのアドレスバーにURIを入力すればリソースが参照できる
- サーバ、クライアント間で何も共有しないことにより、負荷に応じたスケーラビリティが向上する。ステートレス性に値するもので、一番のメリットされている。
- GET、POST、PUT、DELETE等のHTTP標準のメソッドを使うことで、シンプルで一貫性のあるリクエスト標準化が円滑に行える。統一インターフェースに値する。
RESTful APIとREST APIの違い
RESTful API、REST APIと呼び方があるが、広義ではほぼ同じと考えて問題ない。
参考
RESTful Webサービス
WEB+DB PRESS Vol.82
http://d.hatena.ne.jp/LukeSilvia/20091025/p1
Web APIとは何なのか
RESTに対する7つの誤解