🙃

WebAPI?REST?SOAP?いつももやっとするからマインドマップで描き残す

2023/07/04に公開

はじめに

WebAPI?REST?SOAP?このあたりを考えるといつももやっとするので、マインドマップで描き残します(随時更新)。

Web APIマインドマップ

構築方法

REST API

RESTfulとREST API

広義の意味では同じ。

原則

  1. アドレス可能性
    提供する情報がURIで一目でわかるよう表現される一意なアドレスとなっていること。
  2. ステートレス
    セッション等の状態管理はしないで、1つのリクエストに対して1つのレスポンスで完結すること。
  3. 統一インタフェース
    情報の操作「登録」「取得」「更新」「削除」は、すべてHTTPメソッド「POST」「GET」「PUT」「DELETE」を利用すること。
  4. 接続性
    情報の内部に、別の情報や、リンクを含めることができること。

使うメリット

  • URIに規律があるので、無駄に悩むことなく開発が楽。
  • クライアントとサーバーがはっきりと分かれるため、拡張性にも優れ、スケーラビリティが向上する。

現状

使いやすさ、理解しやすさから現状主流となっている。

通信方法

HTTP/HTTPS

みんなおなじみHTTP/HTTPS

RPC

Remote Procedure Call。リモートでつながっているプログラムを呼び出して実行するためのプロトコル。
柔軟性が高いとのこと。

種類

  1. XML-RPC
    データ転送にXMLを用いる。
    最も古く、最も単純。
  2. JSON-RPC
    データ転送にJSONを用いる。

SOAP API

XML-RPCが拡張されたプロトコルなので、通信方式はXML。
巨大で複雑な仕様のため、敬遠傾向。

WebAPIを使うメリット

  1. データの二次利用
  2. 開発効率化
  3. セキュリティ
  4. ユーザビリティ向上
  5. 低コスト

タイプ

Open API

パブリックAPIや外部APIとも呼ばれる。
組織外部から利用できる。
※Google Maps APIや、Twitter APIなど

パートナーAPI

パートナーのみ組織外部から利用できるALBの。

内部API

Open APIとは反対で、組織外部からは利用できない。
組織内部でのみ利用可能なAPI。

コンポジットAPI

ハブ的な役割を担うAPIで、これを介することで、複数のAPIにアクセスできるAPI。

最後に

ふ〜ひとまず描けました。これで、いちいち色々なサイト見にってあーそうだった、そうだった、という時間を過ごさなくてすみそうです。用語については、狭義・広義、見方など諸説ありますので、ご了承ください。

参考

Discussion