API とは?
API とは、アプリケーション・プログラミング・インターフェイスの略で、さまざまなソフトウェアコンポーネントが通信してデータを転送できるようにするプロトコルの集合です。開発者は、高機能で、障害に強く、安全で、ユーザーのニーズを満たすことができるアプリケーションを作成するために、小規模で独立したコードの断片間のギャップを埋めるために API を使用します。目に見えなくても、API はいたるところで使われており、現代の生活に欠かせないデジタル体験を支えるために、バックグラウンドで絶え間なく動いています。
ここでは、API がどのように機能するのかを大まかに説明した後、API の種類とその使用方法について説明します。また、API の一般的な使用例についても触れ、実際に API を使用する際の例をいくつか紹介します。
API はどのように機能する?
API は、アプリケーション、システム、デバイス間でデータを共有することで機能します。これは、リクエストとレスポンスのサイクルを通じて行われます。ユーザーは、アプリケーションとやり取りすることでデータのリクエストを開始します。リクエストは API に送信され、API はデータを取得してユーザーに返します。
このプロセスをよりよく理解するためには、API をレストランに例えて考えると分かりやすいでしょう。この例えでは、客はユーザーのような存在で、自分が欲しいものをウェイターに伝えます。ウェイターは API のような存在で、客の注文を受け、厨房のスタッフが認識できるような特定のコードや略語を使って、厨房へのわかりやすい指示に変換します。厨房スタッフは API サーバーのような存在で、客の指定に従って注文の料理を作ってウェイターに渡し、ウェイターはそれを顧客に届けます。
この例えが理解できれば、さらに一段階深く、さまざまな API コンポーネントの説明を見ていくことができます。まずは API クライアントから始めましょう。API クライアントは、ユーザーの操作に応じてリクエストを組み立て、適切な API エンドポイントに送信する役割を担っています。エンドポイントは、は、データベース内の特定のリソースへのアクセスを提供する統一リソース識別子(URI)です。例えば、ユーザーが e コマースストアのすべての商品を見たい場合、API クライアントは /products
エンドポイントに GET リクエストを送信します。
API の歴史とは?
私たちの生活における API の役割を完全に理解するには、API がどのように進化してきたかを理解することが重要です。API は何十年も前から存在しており、最新の Web API が初めて形になったのは 2000 年代初頭です。それ以降の API の歴史は、おおまかに次の 5 つのフェーズに分けられます。
フェーズ 1: 商用 API
2000 年代初頭、Web API は、新興のスタートアップ企業が製品やサービスをオンラインで利用できるようにするだけでなく、パートナーやサードパーティの再販業者がプラットフォームの範囲を拡大できるようにする新しい方法として登場しました。この API の時代は Salesforce、eBay、Amazon によって定義され、これらの企業は現在も API 競争の場を支配し続けています。
フェーズ 2: ソーシャルメディア API
API をめぐる状況の変化は 2000 年代半ばに起こりました。Flickr、Facebook、Twitter などの新しい企業グループが、API によって情報共有の方法を変えることができることに気づいたのです。これらの API は、以前の商用 API ほど収益に結びついていませんでしたが、それでも組織に大きな価値をもたらしました。例えば、Facebook は 2006 年 8 月に API バージョン 1.0 をリリースし、開発者が Facebook ユーザーの友達、写真、イベント、プロフィール情報にアクセスできるようになりました。この API は、Facebook を世界で最も人気のあるソーシャルネットワークの 1 つとして確立する上で重要な役割を果たしました。
フェーズ 3: クラウド API
2006 年に Amazon は Amazon Simple Storage (S3) を導入し、API の歴史において新たな転換点を迎えました。S3 は、API と CLI を介してリソースにアクセスできる基本的なストレージサービスであり、従量課金モデルにより、組織はオンライン経済でデジタル資産を収益化するためのコスト効率の高い方法を実現できます。そのわずか 6 か月後、Amazon は Amazon Elastic Compute (EC2) をリリースしました。これにより、開発者は Web API を使用して、次世代のアプリケーションを支えるインフラを展開できるようになりました。S3 と EC2 はどちらも、今日のアプリケーション開発において重要な役割を果たし続けています。
フェーズ 4: モバイルアプリケーション向け API
2007 年には、Apple の iPhone と Google の Android が世界に導入されました。ポケットに Web を持ち運べるようになったことで、私たちの生活は劇的に変化し、API を利用したモバイルアプリケーションへの大規模な投資が促進されました。
例えば、Twilio は 2007 年に API-as-a-Product プラットフォームを立ち上げ、開発者があらゆるクラウドアプリケーションから電話をかけたり受けたりできるようにしました。そして、Instagram は 2010 年 10 月に写真共有 iPhone アプリケーションをリリースし、わずか 3 か月後にはユーザー数が 100 万人に達しました。Instagram は当初 API を提供していませんでしたが、ユーザーの要望に応えて 2011 年初頭に API の開発を開始しました。これらの API ファースト企業は、今日の API の提供方法の青写真を描く上で重要な役割を果たしました。
フェーズ 5: コネクテッドデバイス用の API
2010 年頃、一部の開発者は API を使用して、カメラ、サーモスタット、スピーカー、マイク、センサーなどの日常的に使用される機器をクラウドに接続し始めました。Fitbit、Nest、Alexa を含むこの次世代デバイスは、データ、コンテンツ、メディア、その他のデジタルリソースを送受信できるため、私たちを取り巻く世界との関わり方をさらに変化させています。
API にはどのような種類があり、どのように使用されているか?
API にはさまざまな種類があり、分類方法も多種多様です。例えば、誰がアクセスできるのかによって API を分類することができます。この組織的な枠組みには、以下が含まれます。
- プライベート API: プライベート API(内部 API とも呼ばれます)は、単一の組織内のさまざまなソフトウェアコンポーネントを接続するために使用され、第三者が利用することはできません。例えば、ソーシャルメディアアプリケーションには、ログインワークフローを処理するプライベート API、フィードを処理するプライベート API、ユーザー間の通信を容易にするプライベート API があったりします。アプリケーションによっては、数十または数百のプライベート API が含まれることがあります。
- パブリック API: パブリック API は、組織のデータ、機能、またはサービスに対して外部からのアクセスを許可し、サードパーティの開発者が自身のアプリケーションと連携させることができます。一部のパブリック API には、無料で利用できるものもあれば、有料の製品として提供されているものもあります。例えば、e コマースアプリケーションでは、Stripe などの一般公開されている決済 API を組み込むことで、機能をゼロから構築することなく決済処理を行うことができます。
- パートナー API: パートナー API を使用すると、複数の企業がデータや機能を共有し、プロジェクトで共同作業を行うことができます。パートナー API は一般には公開されず、認証メカニズムを利用して、許可されたパートナーだけが使用できるようにします。
- REST: 上で説明したように、REST はインターネット上でデータを転送するための最も一般的な API アーキテクチャです。RESTful なコンテキストでは、リソースはエンドポイントを介してアクセス可能で、GET、POST、PUT、DELETE などの標準的な HTTP メソッドを使用してそれらのリソースに対する操作を実行します。
- SOAP: SOAP は Simple Object Access Protocol の略で、XML を使用してクライアントとサーバー間で高度に構造化されたメッセージを転送します。SOAP はエンタープライズ環境やレガシーシステムで使われることが多く、高度なセキュリティ機能を備えている反面、他の API アーキテクチャよりも遅いことがあります。
- GraphQL: GraphQL はオープンソースのクエリ言語であり、複数のリクエストを連鎖させることなく、クライアントが単一の API エンドポイントと対話して必要なデータを正確に取得することを可能にします。この方法では、クライアントとサーバー間の通信の往復回数を減らすことができるため、低速または信頼性の低いネットワーク接続で動作するアプリケーションに有効です。
- Webhook: Webhook はイベント駆動型アーキテクチャを実装するために使用され、イベントベースのトリガーに応じてリクエストが自動的に送信されます。例えば、支払いが行われるなど、アプリケーションで特定のイベントが発生すると、アプリケーションはリクエストのペイロードに関連するイベントデータを含む HTTP リクエストを、事前に設定された Webhook URL に送信できます。Webhook を受信したシステムはイベントを処理し、適切なアクションを実行できます。
- gRPC: gRPC は Remote Procedure Call の略で、gRPC API は Google によって開発されました。gRPC アーキテクチャでは、クライアントはサーバーをローカルオブジェクトであるかのように呼び出すことができるため、分散アプリケーションやシステムが相互に通信しやすくなります。
API は、アーキテクチャの形態によって分類することもできます。これには多くの分類のしかたがあります。最もよく使用されるアーキテクチャの形態は以下の通りです:
一般的な API の使用例は?
API は非常に汎用性が高く、次のような幅広いユースケースをサポートしています。
内部および外部システムとの連携
開発者が API を利用する最も一般的な理由の 1 つは、あるシステムと別のシステムを連携することです。例えば、API を使用して顧客関係管理(CRM)システムとマーケティングオートメーションシステムを連携すると、営業担当者が CRM に新しい見込み顧客を追加したときにマーケティングメールを自動的に送信できるようになります。
機能の追加や強化
API を使えば、アプリケーションに追加機能を組み込んで、顧客のエクスペリエンスを向上させることができます。例えば、フードデリバリーアプリケーションを開発している場合、サードパーティのマッピング API を組み込んで、ユーザーが配送中の注文を追跡できるようにすることが可能です。
IoT デバイスの接続
API は、スマートウォッチ、フィットネストラッカー、ドアベル、家電製品などのデバイスを含むモノのインターネット (IoT) エコシステムに不可欠です。API がなければ、これらのデバイスはクラウドに接続することも、互いに接続することもできず、使い物にならなくなってしまいます。
よりスケーラブルなシステムの作成
API はマイクロサービスベースのアーキテクチャを実装するために使われます。マイクロサービスベースのアーキテクチャでは、アプリケーションはプライベート API を介して相互に通信する小さなサービスの集合として構築されます。マイクロサービスは互いに独立して管理、展開、プロビジョニングされるため、信頼性が高くコスト効率の高い方法でシステムを拡張できます。
コストの削減
API は、電子メールの送信、レポートの取得、システム間でのデータ共有など、時間のかかる作業を自動化することで、組織の運用コストを削減するのに役立ちます。また、車輪の再発明ではなく、既存の機能を再利用できるようにすることで、開発コストも削減できます。
組織のセキュリティとガバナンスの向上
API は、組織のセキュリティに不可欠な多くのワークフローを強化します。例えば、ユーザーが複数のシステムで 1 つのユーザー名とパスワードを使用できるようにするシングルサインオン(SSO)は、API によって実現されています。また、従業員に経費を精算する前に承認を得る必要があるなど、コーポレートガバナンスのルールやポリシーを適用し、自動化するためにも API が使用されます。
このリストは決して完全なものではなく、開発者が私たちの生活、仕事、互いの交流の方法を変える革新的なソリューションを生み出していくにつれて、今後も増え続けるでしょう。
API の実際の例は?
実際の API の例を探している場合は、公開されている API カタログ、例えば Postman のパブリック API ネットワークから見ていくのがよいでしょう。2,500 万人以上の開発者コミュニティをサポートするパブリック APIネットワークは、検索可能で、整理された API ライブラリで、自分に合った API を簡単に見つけることができます。特定のものを探している場合は、ネットワークの検索機能を使用できますし、インスピレーションを得たい場合は、カテゴリ別に閲覧できます。パブリック API ネットワークで優れた API の例を公開している企業には、Salesforce、Notion、Discord、Pinterest、DoorDash があります。
API に関するその他のよくある質問
- API を扱うのは誰ですか?
開発者は仕事の一環として API を扱う可能性が最も高いですが、Postman の State of the API レポートによると、プロダクトマネージャー、ビジネスアナリスト、カスタマーサポート担当者など、開発者以外の多くの人々も API を扱っています。
- どの業界で API が使用されていますか?
API は、アプリケーションやその他のデジタルサービスの主要な構成要素であるため、テクノロジー業界で広く使用されています。金融機関も、顧客の取引を円滑にするために API を利用しており、医療機関は患者データを管理して安全に保つために API を使用しています。
- API ファースト戦略とは何ですか?
API ファースト戦略は、API を通じて提供される内部および外部のサービスの集合体としてアプリケーションを設計、構築するソフトウェア開発のアプローチです。API はこれらのアプリケーションの構成要素であり、API ファースト戦略により、チームは品質、セキュリティ、パフォーマンスに集中することができます。
- API の構築や連携に役立つツールにはどのようなものがありますか?
API 開発は反復的かつ協調的なプロセスであるため、すべてが可能な限りスムーズに実行されるように適切なツールを活用することが重要です。例えば、チームは GitHub や BitBucket などのソース管理ツールを使用して API の変更を追跡し、Jenkins や CircleCI などの CI/CD パイプラインを使用して API テストとデプロイプロセスを自動化する必要があります。また、チームがこれらのツールと連携する API プラットフォームを使用することも重要であり、これにより摩擦が軽減され、既存のワークフローが強化されます。
- どうやって API を構築しますか?
API 開発プロセスは、API の目的、言語、対象範囲によって大きく異なります。とはいえ、すべての新しい API は、API 開発フレームワークを使用して設計、実装され、期待どおりに動作することを確認するために徹底的にテストされる必要があります。詳しくは API の構築方法をご覧ください。
- API 管理とは何ですか?
API 管理とは、API を扱うための効率的で標準化されたプロセスを確立することです。API 管理に重点を置く組織は通常、Postman のような API プラットフォームを活用しています。Postman は、API の設計、開発、テスト、セキュリティ保護、デプロイ、監視を大規模に支援することができます。これにより、冗長な作業を減らしてコラボレーションを改善し、API 関連プロジェクトの見通しがよくなり、組織の連携を強化することができます。
- SOAP API と REST API の違いは何ですか?
SOAP (Simple Object Access Protocol) と REST (Representational State Transfer) は、API を構築するための最も一般的な 2 つのアーキテクチャ形態です。SOAP API は XML を使用し、セキュリティとエラー処理の機能が組み込まれているため、厳格な標準を持つエンタープライズ環境に最適です。一方、REST API はリソース表現に JSON を使用しますが、これは XML よりも冗長性が低くなります。REST API は通常、SOAP API よりも理解しやすく、使用しやすく、連携が容易ですが、SOAP の高度な機能の一部が欠けています。詳しくは SOAP と REST の違いをご覧ください。
- API と Webhook の違いは何ですか?
Webhook は、API 間のイベント駆動型通信を容易にする軽量のコールバック関数です。従来のリクエスト・レスポンスのサイクルでは、API クライアントはデータを取得したり操作を実行したりするために、リクエストを API サーバーにアクティブに送信します。対照的に、Webhook は、新しいユーザーアカウントの作成や支払いの実施などの特定のイベントを待ち受け、レスポンスで事前に設定された操作を実行します。これにより、指定されたイベントが発生したときにサーバーが自動的に適切な操作を実行したり、関連データを返すため、API クライアントがサーバーをポーリングする必要がなくなります。
- サービス指向アーキテクチャ(SOA)とマイクロサービスアーキテクチャの違いは何ですか?
サービス指向アーキテクチャ(SOA)とマイクロサービスアーキテクチャはどちらも、特定のビジネス機能を実行するモジュール式のサービスで構成されていますが、両者にはいくつかの重要な違いがあります。例えば、マイクロサービスは API を介して相互に通信しますが、SOA サービスではメッセージのルーティング、変換、管理にエンタープライズサービスバス(ESB)を利用します。さらに、SOA サービスでは SOAP が使われることが多いのに対し、マイクロサービスでは REST などの軽量プロトコルがよく使われます。最後に、SOA サービスはマイクロサービスほど粒度が細かくなく、相互に依存する場合もあります。
API 用語集
この API 用語集を使用して、強力な API 語彙を構築し、API の設計、開発、デプロイ、管理の方法について詳しく学びます。