PostmanのAPIファーストな世界の都市風景。イラスト。

APIとは?

API(Application Programming Interfaceの略)とは、異なるソフトウェアコンポーネント間で通信やデータ転送を可能にするプロトコルの集合です。開発者は、ユーザーのニーズに応える高機能で堅牢かつセキュリティで保護されたアプリケーションを構築するために、APIを用いて小さく独立したコードの断片をつなぎ合わせます。APIは目には見えませんが、あらゆるところで使われており、現代の生活に欠かせないデジタル体験を支える存在として、常にバックグラウンドで動作しています。

ここでは、APIの歴史や仕組みの概要を紹介したうえで、さまざまなAPIの種類とその活用方法を見ていきます。さらに、APIの主な利点やユースケース、実際の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が登場し、世界に大きな変革をもたらしました。インターネットをポケットに入れて持ち運べるようになったことで私たちの生活は劇的に変化し、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が必要なデータを取得してレスポンスとして返します。以下はそのプロセスの概要です。

1. APIクライアント

APIクライアントは、APIサーバーにリクエストを送信することで通信を開始します。リクエストはさまざまな方法でトリガーされます。たとえば、ユーザーが検索語を入力したり、ボタンをクリックしたりすることでAPIリクエストが開始される場合があります。また、他のアプリケーションからの通知といった外部イベントによってリクエストがトリガーされることもあります。

2. APIリクエスト

APIリクエストの構造や振る舞いはAPIの種類によって異なりますが、通常は以下のような要素を含みます。

  • エンドポイント:APIエンドポイントは、特定のリソースへのアクセスを提供する専用URLです。例えば、ブログアプリの/articlesエンドポイントには、記事に関連するすべてのリクエストを処理するロジックが含まれます。
  • メソッド: リクエストのメソッドは、クライアントが特定のリソースに対して実行したい操作の種類を示します。 REST APIは標準のHTTPメソッドを通じてアクセス可能で、データの取得、作成、更新、削除などの一般的な操作を行います。
  • パラメーター:パラメーターは、APIエンドポイントに送る変数のことで、APIがどのような処理を行うべきかを正確に指定します。これらは、URL、クエリ文字列、またはリクエストボディの一部としてAPIリクエストに含めることができます。たとえば、ブログAPIの/articlesエンドポイントは「topic(トピック)」というパラメータを受け取り、それに基づいて特定のトピックに関する記事を返すことができます。
  • リクエストヘッダー:リクエストヘッダーは、コンテンツタイプや認証情報など、リクエストに関する追加情報を含むキーと値のペアです。
  • リクエストボディ:リクエストボディはリクエストの本体であり、リソースの作成・更新・削除のために必要なデータが含まれます。たとえば、新しい記事を作成する際には、その記事のタイトル、本文、著者情報などが含まれます。

3. APIサーバー

APIクライアントはリクエストをAPIサーバーに送信します。APIサーバーは、認証を処理し、入力データを検証し、必要に応じてデータを取得または操作します。

4. APIレスポンス

最後に、APIサーバーはレスポンスをクライアントに返します。レスポンスには通常、以下の要素が含まれます。

  • ステータスコード:HTTPステータスコードは、APIリクエストの結果を示す3桁のコードです。最も一般的なステータスコードには、200 OK(サーバーが要求されたデータを正常に返したことを示します)、201 Created(サーバーが新しいリソースを正常に作成したことを示します)、および404 Not Found(サーバーが要求されたリソースを見つけられなかったことを示します)があります。
  • レスポンス ヘッダー: HTTP レスポンス ヘッダー はリクエストヘッダーに非常に似ていますが、サーバーのレスポンスに関する追加情報を提供するために使われます。
  • レスポンスボディ:レスポンスボディには、クライアントが要求した実際のデータやコンテンツ、あるいはエラーメッセージが含まれます。

このプロセスをより直感的に理解するには、APIをレストランにたとえてみるとわかりやすいでしょう。この例では、ユーザーはお客様に相当し、何を注文したいかをウェイターに伝えます。ウェイターはAPIクライアントであり、お客様の注文を受けて、キッチンスタッフが理解できる形式で伝えます(ときには略語やコードを使って)。キッチンスタッフはAPIサーバーであり、指定された内容に基づいて注文(=レスポンス)を準備し、ウェイターを通じてお客様に届けます。

APIのメリットとは?

APIは、さまざまなソフトウェアシステム、アプリケーション、デバイスが互いに通信できるようにすることで、それらを接続します。これにより、ユーザー体験の向上から業務効率の改善に至るまで、数多くのメリットが得られます。代表的な利点は次のとおりです。

  • 自動化:APIは、繰り返し発生する時間のかかる作業を自動化するために利用できるため、人間はより複雑で創造的なタスクに集中することができます。これは、特に開発者やテスターの生産性を大きく向上させます。
  • イノベーション:パブリックAPIは外部のエンジニアリングチームにも利用可能であり、既存の機能を再利用して新しいデジタル体験を構築することを可能にします。これにより、開発のスピードが加速し、革新的なプロダクトが生まれやすくなります。
  • セキュリティ:APIは、機密データへのアクセスに認証と認可を必要とすることで、未承認の侵入に対する追加の保護層を提供します。これにより、セキュリティが強化され、安全性の高いシステム運用が実現します。
  • コスト効率:APIを活用することで、サードパーティが提供する有用なツールやインフラストラクチャを利用できるようになり、自社で複雑なシステムを一から構築する必要がなくなります。

APIの種類は?

APIにはさまざまな種類があり、分類の方法もいくつか存在します。たとえば、「誰がそのAPIにアクセスできるか」に基づいて分類する方法があります。この分類における代表的なタイプは以下のとおりです。

  • プライベートAPI:プライベートAPI(内部APIとも呼ばれます)は、単一の組織内におけるソフトウェアコンポーネント間の連携を目的として使用され、サードパーティには公開されません。たとえば、あるソーシャルメディアアプリには、ログイン処理を担当するプライベートAPI、ニュースフィードを表示するための別のプライベートAPI、ユーザー同士の通信を制御するさらに別のプライベートAPIが存在する可能性があります。アプリケーションによっては、数十、あるいは数百のプライベートAPIを使用している場合もあります。
  • 公開API: パブリックAPIは、組織のデータ、機能、サービスへの公開アクセスを提供し、サードパーティ開発者が自社のアプリケーションに統合できます。一部の公開APIは無料で利用可能で、他は請求可能な製品として提供されています。例えば、eコマースアプリケーションには、 Stripeのような公開決済APIが組み込まれ、一から構築することなく決済処理を行えることがあります。
  • パートナーAPI:パートナーAPIは、2社以上の企業間でデータや機能を共有し、特定のプロジェクトで協業するために使用されます。これらのAPIは一般には公開されておらず、認証メカニズムを通じて、認可されたパートナーだけがアクセスできるようになっています。
  • 図:Postmanのさまざまな種類のAPI。イラスト。

最も一般的なAPIアーキテクチャスタイルは?

APIはそのアーキテクチャスタイルによっても分類することができ、さまざまなスタイルが存在します。中でも、最も広く使用されている主なスタイルは以下の通りです。

1. REST

上記で説明したように、RESTはインターネット上でデータを転送するための最も一般的なAPIアーキテクチャです。RESTfulなコンテキストでは、リソースはエンドポイントを介してアクセス可能で、GET、POST、PUT、DELETEなどの標準的なHTTPメソッドを使用してそれらのリソースに対する操作を実行します。

2. SOAP

SOAPはSimple Object Access Protocolの略で、クライアントとサーバー間でXMLを使用して高度に構造化されたメッセージを転送します。SOAPはエンタープライズ環境やレガシーシステムで使われることが多く、高度なセキュリティ機能を備えている反面、他のAPIアーキテクチャよりも遅いことがあります。

3. GraphQL

GraphQL はオープンソースのクエリ言語であり、複数のリクエストを連鎖させることなく、クライアントが単一のAPIエンドポイントと対話して必要なデータを正確に取得することを可能にします。この方法では、クライアントとサーバー間の通信の往復回数を減らすことができるため、低速または信頼性の低いネットワーク接続で動作するアプリケーションに有効です。

4. Webhook

Webhookは、イベント駆動型アーキテクチャを実装するための仕組みで、あるイベントがトリガーされたときに自動的にHTTPリクエストが送信されます。たとえば、あるアプリケーションで支払い処理が行われた際に、あらかじめ設定されたWebhook URLに関連するイベントデータがペイロードとして送信されます。受信側のシステムはそのイベントを処理し、適切なアクションを実行します。

5. gRPC

RPCはRemote Procedure Callの略で、gRPC APIはGoogleによって開発されました。gRPCアーキテクチャでは、クライアントはサーバーをローカルオブジェクトであるかのように呼び出すことができるため、分散アプリケーションやシステムが相互に通信しやすくなります。


プライベートAPI、パートナーAPI、パブリックAPI。イラスト。

一般的なAPIのユースケースは?

APIは非常に汎用性が高く、次のような幅広いユースケースをサポートします。

1. 内部および外部システムとの統合

開発者がAPIを利用する最も一般的な理由の1つは、複数のシステム間を連携させることです。たとえば、顧客関係管理(CRM)システムとマーケティングオートメーションシステムをAPIで統合することで、営業担当者がCRMに新しい見込み顧客を追加した際に、マーケティングメールを自動送信する、といった統合が可能になります。

2. 機能の追加または強化

APIを使えば、アプリケーションに追加機能を組み込んで、顧客体験を向上させることができます。たとえば、フードデリバリーアプリでは、サードパーティのマッピングAPIを導入することで、ユーザーが配達状況をリアルタイムで追跡できるようになります。

3. IoTデバイスの接続

APIは、スマートウォッチ、フィットネストラッカー、ドアベル、家電製品といったデバイスで構成されるIoTエコシステムの基盤技術です。APIによってこれらのデバイスはクラウドサービスや他のデバイスとの連携が可能になり、APIなしでは使い物にならなくなってしまいます。

4. よりスケーラブルなシステムの作成

APIはマイクロサービスアーキテクチャの実装にも不可欠です。このアーキテクチャでは、アプリケーションは小規模なサービスの集合として構築され、それぞれがプライベートAPIを通じて通信します。マイクロサービスは独立して管理・デプロイ・拡張できるため、信頼性が高く、コスト効率に優れたスケーラブルなシステムが実現できます。

5. コストの削減

APIは、メール送信、レポートの取得、システム間のデータ連携といった時間のかかる業務を自動化することで、運用コストの削減に貢献します。また、既存の機能を再利用することで「車輪の再発明」を防ぎ、開発コストの削減にもつながります。

6. 組織のセキュリティとガバナンスの改善

組織のセキュリティを支える多くの業務プロセスは、APIによって実現されています。たとえば、複数のシステムで同じユーザー名とパスワードを使用できるシングルサインオン(SSO)機能があります。さらに、経費申請時の事前承認プロセスなど、企業ガバナンスの規則やポリシーを適用し、自動化するにもAPIが重要な役割を果たしています。

これらの事例は一部に過ぎず、開発者による革新的なソリューション開発が続く限り、私たちの生活、働き方、人とのつながり方を変える新しいAPI活用例が今後も生まれ続けるでしょう。


プライベートAPI、パートナーAPI、パブリックAPI。イラスト。

実際のAPI活用事例とは?

実際のAPIの活用例をお探しなら、PostmanのパブリックAPIネットワークのような、APIカタログから始めることをお勧めします。4,000万人以上の開発者コミュニティをサポートするパブリック API ネットワークは、自分に合ったAPIを簡単に見つけられるよう、検索可能で高度に整理されたAPIのライブラリです。特定のものを探している場合は、ネットワークの検索機能を利用できますし、インスピレーションを得たい場合は、カテゴリ別に閲覧できます。以下は、パブリックAPIネットワークで注目すべきAPI事例を公開している企業の一部です。

Salesforce

Salesforce はクラウドベースのCRMソフトウェアで、顧客が顧客を見つけて接続し、取引をまとめ、大規模にサービスを提供することを可能にします。 Salesforce パブリックワークスペースには、Salesforce クラウドや製品全体にわたる開発者向けの多くの API リソースが含まれています。

Notion

Notionは、アイデアの整理、文書作成、プロジェクト計画などを一元化できるノートアプリです。Notionチームは、開発者がNotion APIとの連携を始めやすいように、わかりやすく実用的なコレクションを公開しています。これにより、タスクの自動化や他のワークフローとの統合を効率的に実現できます。

Discord

Discord は、音声、ビデオ、メッセージベースのコミュニケーション、およびメディアやファイルの共有を促進するソーシャル プラットフォームです。Discordチームは、開発者がDiscordサーバーをカスタマイズできるアプリを作るのを支援するコレクションを公開しています。 また、あなたが始めるのに役立つ役立つ紹介も含まれています。

Pinterest

Pinterestは、ユーザーが画像を共有し、互いに接続し、インスピレーションを得ることを可能にします。Pinterest APIは、サイトやアプリケーションの開発者にとって、実現できることの幅を大きく広げ、また、彼らはあなたが利用を開始するのに役立つコレクションを公開しています。

DoorDash

DoorDash は食品の注文・配達プラットフォームであり、DoorDash DriveはあなたがDoorDashのオンデマンド物流プラットフォームとダッシャーのフリートを活用し、迅速かつ簡単にあなたの商品を届けることを可能にします。 DoorDashチームは、DoorDash APIを簡単に使い始められるコレクションを公開しています。


APIに関するその他のよくある質問

誰がAPIを扱うのですか?

APIは開発者が主に扱うツールですが、Postmanの『State of the API Report』によると、プロダクトマネージャー、ビジネスアナリスト、カスタマーサポート担当者など、開発者以外の人々も業務で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の違いは何ですか?

Webhooksは、API間のイベント駆動型通信を容易にする軽量のコールバック関数です。従来のリクエスト・レスポンスのサイクルでは、APIクライアントはデータを取得したり操作を実行したりするために、リクエストを API サーバーにアクティブに送信します。対照的に、Webhookは、新しいユーザーアカウントの作成や支払いの実施などの特定のイベントを待ち受け、レスポンスで事前に設定された操作を実行します。これにより、指定されたイベントが発生したときにサーバーが自動的に適切な操作を実行したり、関連データを返すため、API クライアントがサーバーをポーリングする必要がなくなります。

サービス指向アーキテクチャ(SOA)とマイクロサービスアーキテクチャの違いは何ですか?

サービス指向アーキテクチャ(SOA)と マイクロサービスアーキテクチャ は、それぞれ特定の業務機能を果たすモジュラーサービスで構成されていますが、いくつかのキーの違いがあります。 例えば、マイクロサービスはAPIを介して通信しますが、SOAサービスはメッセージのルーティング、変換、管理にエンタープライズサービスバス(ESB)に依存しています。 さらに、SOAサービスはSOAPを使い、マイクロサービスはRESTのような軽量プロトコルを使いがちです。 最後に、SOAサービスはマイクロサービスよりも細かく、互いに依存している場合もあります。