🙃
WebAPI?REST?SOAP?いつももやっとするからマインドマップで描き残す
はじめに
WebAPI?REST?SOAP?このあたりを考えるといつももやっとするので、マインドマップで描き残します(随時更新)。
Web APIマインドマップ
構築方法
REST API
RESTfulとREST API
広義の意味では同じ。
原則
- アドレス可能性
提供する情報がURIで一目でわかるよう表現される一意なアドレスとなっていること。 - ステートレス
セッション等の状態管理はしないで、1つのリクエストに対して1つのレスポンスで完結すること。 - 統一インタフェース
情報の操作「登録」「取得」「更新」「削除」は、すべてHTTPメソッド「POST」「GET」「PUT」「DELETE」を利用すること。 - 接続性
情報の内部に、別の情報や、リンクを含めることができること。
使うメリット
- URIに規律があるので、無駄に悩むことなく開発が楽。
- クライアントとサーバーがはっきりと分かれるため、拡張性にも優れ、スケーラビリティが向上する。
現状
使いやすさ、理解しやすさから現状主流となっている。
通信方法
HTTP/HTTPS
みんなおなじみHTTP/HTTPS
RPC
Remote Procedure Call。リモートでつながっているプログラムを呼び出して実行するためのプロトコル。
柔軟性が高いとのこと。
種類
- XML-RPC
データ転送にXMLを用いる。
最も古く、最も単純。 - JSON-RPC
データ転送にJSONを用いる。
SOAP API
XML-RPCが拡張されたプロトコルなので、通信方式はXML。
巨大で複雑な仕様のため、敬遠傾向。
WebAPIを使うメリット
- データの二次利用
- 開発効率化
- セキュリティ
- ユーザビリティ向上
- 低コスト
タイプ
Open API
パブリックAPIや外部APIとも呼ばれる。
組織外部から利用できる。
※Google Maps APIや、Twitter APIなど
パートナーAPI
パートナーのみ組織外部から利用できるALBの。
内部API
Open APIとは反対で、組織外部からは利用できない。
組織内部でのみ利用可能なAPI。
コンポジットAPI
ハブ的な役割を担うAPIで、これを介することで、複数のAPIにアクセスできるAPI。
最後に
ふ〜ひとまず描けました。これで、いちいち色々なサイト見にってあーそうだった、そうだった、という時間を過ごさなくてすみそうです。用語については、狭義・広義、見方など諸説ありますので、ご了承ください。
Discussion