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が必要なデータを取得してレスポンスとして返します。以下はそのプロセスの概要です。

1. APIクライアント

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

2. APIリクエスト

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

  • エンドポイント:APIエンドポイントとは、特定のリソースにアクセスするための専用URLです。たとえば、ブログアプリの/articlesエンドポイントには、記事に関連するすべてのリクエストを処理するロジックが含まれています。
  • メソッド:リクエストメソッドは、クライアントが特定のリソースに対して実行したい操作の種類を示します。REST APIでは、HTTPのメソッド(GET、POST、PUT、DELETEなど)を用いて、データの取得、作成、更新、削除などの操作が行われます。
  • パラメーター:パラメーターは、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は、クライアントとサーバー間で高度に構造化されたメッセージをXML形式で転送するためのプロトコルです。主にエンタープライズ環境やレガシーシステムで使用されており、高度なセキュリティ機能を備えている反面、他のAPIアーキテクチャと比べて処理速度が遅い傾向があります。

3. GraphQL

GraphQLGraphQLはオープンソースのクエリ言語で、クライアントが1つのエンドポイントに対して必要なデータだけを正確にリクエストできるようにします。複数のリクエストを組み合わせる必要がないため、クライアントとサーバー間の通信回数が削減され、通信環境が遅かったり不安定だったりする場合にも有効です。

4. Webhooks

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

5. gRPC

gRPCは、Googleによって開発されたRPC(Remote Procedure Call)ベースのAPIアーキテクチャです。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カタログから始めることをお勧めします。このネットワークは、3,000万人以上の開発者コミュニティを支えており、目的に合ったAPIを簡単に見つけられるよう、検索機能付きで整理されたAPIライブラリを提供しています。特定のAPIを探す際には検索機能を、インスピレーションを得たいときにはカテゴリ別の閲覧が役立ちます。以下は、パブリックAPIネットワークで注目すべきAPI事例を公開している企業の一部です。

Salesforce

Salesforceは、クラウドベースのCRMソリューションであり、顧客の獲得から契約の締結、カスタマーサポートに至るまで、ビジネスプロセスを包括的に支援します。Salesforceのパブリックワークスペースには、各種クラウド製品向けに多数のAPIリソースが提供されています。

Notion

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

Discord

Discordは、音声・ビデオ通話、テキストチャット、メディアやファイルの共有を可能にするソーシャルプラットフォームです。Discordチームは、開発者が自分のDiscordサーバー向けのアプリを構築するためのコレクションを公開しており、導入支援のガイドも併せて提供しています。

Pinterest

Pinterestは、ユーザー同士が画像を共有し、インスピレーションを得るためのプラットフォームです。Pinterest APIを活用することで、開発者は自社サイトやアプリにPinterestの機能を組み込むことができ、その活用範囲が大きく広がります。

DoorDash

DoorDashはフードデリバリーおよび注文管理プラットフォームです。DoorDash Driveは、DoorDashのオンデマンド物流基盤とDasher(配達パートナー)ネットワークを活用して、ユーザーの商品を迅速かつ簡単に配達できる仕組みを提供します。DoorDashチームは、API導入を簡単に始められるようにするためのコレクションを公開しています。


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

誰がAPIを扱うのですか?

APIは開発者が主に扱うツールですが、Postmanの「State of the API report」によると、プロダクトマネージャー、ビジネスアナリスト、カスタマーサポート担当者など、非エンジニア職の人々も業務で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サービスはマイクロサービスほど粒度が細かくなく、相互に依存する場合もあります。

API用語集

このAPI用語集を使用して、API関連の専門用語を習得し、APIのライフサイクル全体(設計、開発、デプロイ、管理)への理解を深めることができます。

APIカタログを見ているPostmanaut。イラスト。
POST/CON 2024 Banner

イベントレポート:APIとAI開発者のための新時代

エージェンティックAI時代において、トップ開発者たちがいかにより賢く、迅速で、セキュアなAPIを構築しているかをご覧ください。ロサンゼルスでの2日間にわたるイノベーションから生まれた洞察、戦略、プロダクト発表をお届けします。

Photo of Postman CEO Abhinav Asthana on stage at POST/CON 25