見出し画像

【テクノロジー】APIを調べてみたらこうなった

Web APIとローカルAPIの違い、そして進化の歴史

API(Application Programming Interface)は、ソフトウェア間のデータや機能を連携するための仕組みです。APIは大きく分けて Web APIローカルAPI の2種類があります。それぞれの違いと、特にWeb APIの進化について解説します。



1. Web APIとローカルAPIの違い

Web API

  • 概要: インターネットを介してデータやサービスを提供するAPI。

  • 特徴:

    • クライアントとサーバー間の通信が可能。

    • Webベースの技術(HTTPやHTTPS)を使用。

  • 用途:

    • サードパーティアプリとの連携。

    • クラウドサービス(SaaS)でのデータ共有。

ローカルAPI

  • 概要: 同じデバイス内で動作するAPI。

  • 特徴:

    • アプリケーションやデバイスのローカルリソースにアクセス。

    • 外部ネットワーク接続不要。

  • 用途:

    • OSやデバイス上でのハードウェア制御。

    • ローカルアプリ間のデータ連携。


2. Web APIの種類と歴史

Web APIは以下の技術で進化してきました。それぞれの登場年や特徴を見ていきましょう。

2.1 REST API

  • 登場: 2000年(Roy Fielding氏による提案)

  • 特徴:

    • HTTPプロトコルに準拠。

    • URLでリソースを指定し、GET・POST・PUT・DELETEなどのメソッドで操作。

    • シンプルかつ軽量で、現在のWeb APIの主流。

  • : Twitter API、GitHub API、Google Maps API。

2.2 SOAP API

  • 登場: 1998年

  • 特徴:

    • XMLベースのプロトコル。

    • セキュアかつ堅牢な通信を実現。

    • 大規模システムでの採用が多いが、現在はREST APIに取って代わられることが多い。

  • : 古い銀行システムや企業向けシステム。

2.3 GraphQL

  • 登場: 2015年(Facebookが公開)

  • 特徴:

    • クライアントが必要なデータを指定して取得できる。

    • オーバーフェッチやアンダーフェッチの解消。

    • 柔軟性が高い。

  • : Shopify API、GitHub GraphQL API。

2.4 RPC(Remote Procedure Call)

  • 登場: 1980年代

  • 特徴:

    • 関数呼び出しの形式でリモートの手続きやサービスを実行。

    • JSON-RPCやgRPC(Googleが開発)などが代表例。

    • 高速な通信が可能。

  • : gRPC(Google Cloud Platformで利用)。


3. SaaS APIの主流はREST API

SaaS(Software as a Service)業界では、REST APIが標準的に採用されています。その理由は以下の通りです。

  1. シンプルさ: HTTPに準拠しており、誰でも簡単に使える。

  2. 柔軟性: 多様なデバイスや言語で利用可能。

  3. スケーラビリティ: クラウドサービスに最適。

例えば、SlackやZoom、ShopifyなどのSaaSは、REST APIを通じて簡単に他のアプリケーションと連携できる環境を提供しています。


4. まとめ

APIは、技術の進化に伴い多様化してきました。特にWeb APIは、以下の流れで進化しています。

  1. 1998年: SOAP APIの登場(セキュリティ重視)。

  2. 2000年: REST APIの提案(シンプルかつ軽量)。

  3. 2015年: GraphQLの登場(柔軟性の向上)。

  4. 1980年代から現在: RPCの採用(高速通信)。

それぞれのAPIは用途や目的に応じて選ばれていますが、現代のSaaSやWebサービスの基盤として、REST APIが主流であることは間違いありません。

今後もAPIの技術は進化し続けるでしょう。GraphQLやgRPCなど、新しい技術にも注目していきたいですね。


さらに細かな仕様は以下の表にとてもきれいに整理されていました。

引用元:https://blog.bytebytego.com/p/soap-vs-rest-vs-graphql-vs-rpc


いいなと思ったら応援しよう!