Michael Chen |シニア・ライター| 2025年2月24日
「API」とは、アプリケーション・プログラミング・インターフェースの頭文字をとった用語です。APIはアプリケーション間の橋渡し役として機能し、アプリケーション間の通信やデータの共有を可能にします。たとえば、マーケティングチームが複数のソーシャルメディアアカウントを管理するためのダッシュボードは、各SNSプラットフォームと接続し、必要なデータを取得・表示するためにAPIを利用しています。
一般的なインターネットユーザーも、意識しないまま日常的にAPIの恩恵を受けています。たとえば、天気予報サイトの公開データを商用アプリに連携して嵐の接近を通知したり、開発者がGoogle Maps APIを利用して地図や位置情報サービスを自社サイトに埋め込んだりするのがその例です。小売業者は、顧客との財務取引をセキュアに処理するために、PayPalやStripeなどのAPIを搭載した決済ゲートウェイを使用しています。
API(アプリケーション・プログラミング・インターフェース)とは、アプリケーションがデータを交換し、アクションを実行し、文書化された方法でやりとりできるようにするルールとプロトコルのセットです。たとえば天気予報の更新のようなリクエストが行われると、APIはリクエストを処理し、必要なアクションを実行し、通常 JSON やXMLで定義されているような標準的な形式でレスポンスを返します。
主なポイント
アプリケーションは受信リクエストを管理するサーバー・アプリケーションのAPIゲートウェイにリクエストを送信します。APIがないと、ユーザーが天気をチェックしたり、ソーシャルメディア・サイトのコメントに返信したりするたびに、あるアプリケーションからデータを手動でエクスポートし、準備して変換し、別のアプリケーションに手動でインポートする必要がありました。
シンプルに言えば、交換プロセスには以下の3つの関係者が関係しています。
レストランの例で考えてみましょう。もしお客がキッチンに押しかけて、自分の料理を直接注文しようとしたら、大混乱になります。このシナリオでは、APIは、キッチン(サーバー・アプリケーション)が提供できるすべての料理(サービス)が記載されたメニュー(ドキュメント)を提供し、そこにはお客(クライアント)がどんな情報を、どのような形式で出せばよいかが明確に記載されています。
APIはウェイターのような存在で、注文を正確かつ標準化された方法で伝え、結果を確実に受け取って届けてくれるのです。
APIは、ソフトウェア・コンポーネントがやりとりする方法を指定することで、開発者が最初からすべてを構築することなく、異なるシステムを統合し、データや機能を共有することを可能にし、時間とリソースを削減します。APIは通常、コミュニケーションに使用する必要がある方法とプロトコル、および交換可能なデータ形式を定義します。
APIは、以下のような詳細を提供することで、アプリケーションがやりとりする方法を定義します。
データを要求するクライアント・アプリケーションの開発者は、APIコールを行うためのコードを記述します。このコードは以下を指定します。
アプリケーションは受信リクエストを管理するサーバー・アプリケーションのAPIゲートウェイにリクエストを送信します。APIゲートウェイは、ターゲット・アプリケーション内の適切なサービスにリクエストをルーティングします。サービスはリクエストを処理し、データを取得するか、別の希望されたアクションを実行します。
ターゲット・サービスはその後、API定義に従ってレスポンス・データを準備し、APIゲートウェイを通じてリクエスト元のアプリケーションに送り返し、アプリケーションはデータを受信して解析し、期待される結果をエンド・ユーザーに提供します。
APIは、開発者が他のアプリケーションやサービスのデータや機能にアクセスするための標準化された方法を提供するため、企業はわざわざ従来の仕組みを作り直す必要がなくなります。これは時間の短縮とコスト削減につながります。また、標準化は、既存システムの運用を中断することなく、新しい機能やサービスをモジュール式の追加を実現することで、イノベーションとスケーラビリティの両方を促進します。
ビジネス・レベルでは、APIは、ソフトウェアが他のソフトウェアと直接やりとりできるようにすることで、企業が反復的なタスクやプロセスの自動化を可能にするという点で非常に重要です。ほとんどのビジネスが、従業員をより高度な業務に振り向けるために自動化に取り組んでいることを考えると、APIが手動ワークロードを削減し、運用効率を向上さ せられることは、重要なメリットです。クラウド・サービスの利用を増やそうとしている組織も、APIを大いに活用しています。
APIのコンポーネントは、異なるソフトウェア・システムが通信し、データや機能を交換できるようにするために連携します。APIをソフトウェアにうまく統合するには、これらのコンポーネントを理解することが不可欠です。APIのコンポーネントには次のようなものがあります。
APIには、レート制限、エラー処理、開発者向けのドキュメントが含まれることもあります。しっかりした API を書くには、アーキテクチャのスタイルから設計ツールに至るまで、一連の意思決定が必要であり、クラウド ネイティブな将来を見据える組織にとって不可欠なスキルです。
APIを使用することで、開発者はスマートフォンのアプリケーションとソーシャルメディア・ウェブサイト、あるいは給与計算システムとビジネス・バンク・アカウントなど、分散したアプリケーションを連携させることができます。APIは、小規模で個別の連携したサービスから便利なアプリケーションを構築できるため、堅牢性とスケーラビリティの面でメリットがあります。
1つのサービスが壊れても、アプリケーションの大部分は継続できます。さらに、次のようなメリットもあります。
APIには利点がある一方で、APIコールを使用するアプリケーションを設計する際や、独自のAPIを構築する際に考慮すべき、複雑さ、コスト、セキュリティに関する課題があります。複数のAPIを利用するソフトウェアは、特にAPIプロバイダーが頻繁に更新や変更を行う場合、管理とメンテナンスが困難になる可能性があります。
取り組むべき具体的な課題は次のとおりです。
関連して、すべてのAPI開発者が、開発者がAPIを使用し統合するために不可欠な明確で包括的なドキュメントを提供しているわけではありません。そのため、プロバイダーパートナーを慎重に選択してください。
APIの開発を検討している人にとって、特に仕様の選択と要求の厳しさについては、いくつかの問題があります。優れたAPI設計の信条は、バックエンドの導入方法の変更からコンシューマを抽象化し保護することです。APIの設計は元となるデータ・ストレージを直接反映するため、たとえば内部データ構造が変更された場合、APIが影響を受け、APIクライアントが中断する可能性があります。
その他の避けるべきミスは次のとおりです。
不十分なドキュメント。 APIを成功させるには、明確で詳細なドキュメントが必須です。たとえば日付を記述する場合、書式を明確にする必要があります。ヨーロッパでは通常、日付は日、月、年の順で表記されますが、北米では月、日、年の順です。このような詳細を明確にしておかないと、データ品質に問題が生じる可能性があり、最悪の場合、APIがアプリケーションを破壊することになります。
本番データ量を考慮しない。 APIの開発中、テストでは比較的小さなデータセットが使用されます。本番環境では、データ量ははるかに大きくなることが多く、その結果、APIコールは1回のリクエストで大量のデータの通信を試みることになります。これにより、クライアントとバックエンド間のネットワークに応じて、様々な問題が発生する可能性があります。最悪の場合、リクエストはAPIバックエンドに過剰な要求を出し、APIコールが失敗する結果になる場合があります。
APIゲートウェイのポリシーを設定する際にもミスが生じる可能性があります。 これらのエラーには通常、十分なセキュリティーが提供されないため、悪意のある攻撃者はデータを変更したり不適切にアクセスしたり、ネットワークを攻撃する方法としてAPIを使用したりする可能性があります。これらの種類の問題はOWASP Foundationによって分析および収集されており、最も一般的なミスは「上位10 APIのセキュリティ・リスク」リストで報告されます。
APIゲートウェイとAPIバックエンドの役割の混同もよくあるミスです。どちらの機能もAPIを受信すると処理する必要があり、2つの要素は容易に混同されます。しかし、ゲートウェイの仕事はリクエストを選別し、迅速に適切な場所にルーティングすることです。APIバックエンドはビジネス・ロジックを提供するため、各リクエストの処理に時間がかかります。
APIコールとAPIバックエンドの関係は1対1ではないことを念頭に置く必要があります。
APIには主に4つの種類があります。どれを選ぶかはユースケースに応じ、決定します。モデルを決定する前に、アプリケーションの近い将来と長期的な計画を考慮します。別のAPIに入れ替えることは可能ですが、コストと複雑さが増します。
ほとんどの人たちがよく知るものは、天気や位置情報などの消費者向けAPIです。しかし、クラウド・サービスからデータベース、堅牢な業務アプリケーションまで、企業が機能を活用することを可能にする高度なAPIが存在します。
たとえば、オラクルはサービス全体にわたり、さまざまなAPIを提供しています。Oracle Cloud Infrastructure(OCI)を使用する企業は、サブネット、セキュリティ・リスト、ルート・テーブルの作成、構成、管理など、仮想ネットワークのプログラムによる管理にAPIを活用できます。コンピュートAPIにより、管理者はOCIのコンピュート・インスタンスの起動、停止、再起動、および構成を行うことができます。その他のAPIは、ITチームをオブジェクト・ストレージやアイデンティティ およびアクセス管理機能と連携させます。
革新的なスタートアップもAPIを使用しています。例えば、Inworld.aiは、オンラインロールプレイングゲーム向けにAI駆動型のバーチャルキャラクターを提供しています。APIを使用することで、開発者はプレイヤーと現実的で没入感のある方法で相互作用する非プレイヤーキャラクター(NPC)を作成できます。APIは、ゲームデザイナーがキャラクターの属性、性格、行動を指定できるようにし、これによりNPCをカスタマイズしてゲームに深みと多様性をもたらすことができます。バーチャルキャラクターは、テキストや音声の入力を理解し、APIを介して応答することができます。
ドミノ・ピザがAPIを活用して音声アシスタントと連携し、顧客がデバイスに触れることなくピザを注文できる仕組みから、ウーバーがAPIを利用してリアルタイムデータに接続し、需要と交通状況に応じて配車料金を動的に調整する仕組みまで、この技術は現在、真のイノベーションを推進しています。
一般の人にとって、ソーシャルメディアの統合や支払い処理を可能にするAPIは馴染み深いものとなるでしょう。多くのウェブサイトやアプリケーションがAPIを使用して、コンテンツの共有のような一般的なソーシャルメディア機能を実現している一方、Eコマース・プラットフォームはAPIを使用して、StripeやPayPalのような決済ゲートウェイと連携しています。
しかし、APIが私たちの日常生活を便利にする方法はそれだけではありません。これらのサービスは、地図APIを利用して顧客の自宅や目的地の位置を特定するライドシェアリングやフードデリバリーサービスを提供するアプリが利用するジオロケーション機能を可能にします。
ビジネス面でのAPIユースケースには、チームが財務やカスタマーサービス部門で使用するアプリケーションなど、クラウド・リソースとのやりとりを可能にすることが含まれます。APIはまた、IoTデバイスとそのコントロール・システム間の通信とデータ交換を支えるものでもあります。
照明や温度が自動的に調整されるスマートオフィスにもAPIが活用されています。
APIを開発者に公開するためのプロトコル(アーキテクチャ・スタイル)は複数あります。これらのアプローチは、開発者がAPIのセットがどのように機能するかを予測し、自社のプログラムからAPIにアクセスする際の一般的なメカニズムを理解できるようにします。
一般的なアーキテクチャ・スタイルは次のとおりです。
API統合はアプリケーションを連携させ、データや機能の交換を可能にします。統合を、オープンな双方向のコミュニケーションを可能にする電話回線のようなものと考えてみてください。
API統合には、次の3つの要素が関わります。
API自体に、アプリケーションの通信方法を定義するルールや仕様が備わっています。APIは、やりとりできるデータ、そのフォーマット、トリガーされるアクションを定義します。
サーバー・アプリケーションは、APIを介してその機能またはデータを公開します。たとえば、クラウド・サービスは、ITチームが新しいインスタンスを迅速に立ち上げたり、ユーザー数を増やしたりできるようにします。
クライアント・アプリケーションはAPIを使用して、サーバー・アプリケーションにデータや機能をリクエストします。たとえばライドシェアのアプリケーションは、天気予報サービスのAPIを使用して、雨天時や特定の気温のしきい値を上回ったり下回ったりした場合に料金を調整します。
実際のプロセスにはいくつかのステップがあり、最初にクライアント・アプリケーションの開発者が適切なAPIを選択します。クライアントはAPIキーやトークン、その他の認証情報を使用して目的のAPIを認証し、特定のデータやアクションにアクセスするための認可を取得します。その後、サーバーのAPIにリクエスト(コール)を行い、必要な特定のデータやアクションをリクエストします。
サービング・アプリケーションはリクエストを処理し、許可された場合、アクションを実行するか、データを取得し、JSONやXMLなどの構造化された形式で、APIを介してクライアントに送り返します。
APIとデジタル・トランスフォーメーションの本質はクラウド活用にあり、その中核を担うのがAPIです。APIはクラウドネイティブなアーキテクチャにおいて不可欠な存在です。APIは、クラウド内のサービスやシステムの統合を実現し、レガシー・アプリケーションを新しいクラウドサービスと連携させることで、業務を中断させることなく、デジタルな未来へと段階的に移行できるようにします。APIにより、企業は市場の変化やチャンスに迅速に対応することができます。たとえば、決済ゲートウェイ、SNS連携、分析ツールなどの最新サービスをアプリケーションに直接組み込むことも可能です。
もう1つの変革的な、API主導のテクノロジーは、最新のアプリケーション開発に対するアーキテクチャ・アプローチの1つで、独立したサービスや機能を好むマイクロサービス・アプリケーションです。Iマイクロサービス・アーキテクチャでは、アプリケーションは単一のタスクを効率的に実行する、内包されたビルディング・ブロックに分割されます。マイクロサービス・アプリケーションはAPIを使用して他のアプリケーションやサービスと通信します。アプリケーションは数個のマイクロサービスから構成されることもあれば、数百、数千の可動部分から構成されることもあります。マイクロサービスベースのアプリケーションは、個々の要素が独立しているため、より迅速に拡張できます。これにより、レガシー・ソフトウェア開発で使用されている単一構造のアーキテクチャによって妨げられる可能性のあるデジタル・トランスフォーメーションへの取り組みに必要なアジリティと柔軟性を提供します。
マイクロサービスを活用するクラウドネイティブな企業は、迅速に移行して新しい機会を捉え、自動化を導入することができます。APIはその戦略を支えています。
企業は、APIを開発してクラウド、人工知能(AI)、機械学習(ML)の継続的な成長を後押ししており、リクエストと結果はAPIを通じてやりとりされます。しかし、API自体も進歩しています。
その例の一つがリバース(イグレス)ゲートウェイです。通常、APIゲートウェイは外部からのリクエストを受け取る役割を担います。しかし、APIゲートウェイが専門的なインターネット・プロキシとして運用され、アプリケーション・ネットワーク・トラフィックを誘導するインフラストラクチャを提供する一方で、ITチームによるモニタリングを実現している状況もあります。トラフィックがネットワークを離れる唯一の方法が承認された外部 API を使用して API ゲートウェイを経由することである場合、IT 部門はネットワークを離れるパケットを監査し、データで何が起こっているかをよりよく理解することができます。
APIゲートウェイはまた、請求対象サービスの使用を追跡し、サービスが適切に使用され、期待通りの収益が得られていることを確認することもできます。また、ゲートウェイはアプリケーションの新バージョンを導入する前のテストを支援できます。テスト中、リクエストの発信元が本番システムかテスト中のシステムかに応じて、コールを指示する必要がある場合があります。ゲートウェイは必要な情報を引き出し、リダイレクトを実行します。
新しいAPIレート制限とスロットリング技術は、ITチームがAPIアクセスを管理し、攻撃を防止できるよう支援します。レート制限は、アプリケーションが特定のスケジュール内で行うことができるAPIコールの回数を制限し、スロットリングでは、サーバーのロードやアクティビティが悪意のある可能性があるとタグ付けされているかどうかなどの要因に基づいてアクセスを動的に調整します。
APIの動向を形作る他の主要なトレンドと基準には、セキュリティを犠牲にすることなく、オープン性と相互運用性に焦点を当てた取り組みが含まれます。企業は、次のようなトレンドに注目する必要があります。
OpenAPIイニシアチブ。 OpenAPIイニシアチブ(OAS)は、APIを記述するための共通言語に取り組んでいる組織のコンソーシアムです。この標準化された形式により、ドキュメント、発見、統合の向上がもたらされることが期待されています。
JSON Webトークン。 もうひとつのオープン・スタンダードの取り組みであるJWTは、APIにおける認証と認可の一般的な方法になりつつあります。これらは、アプリケーションがAPIサーバー自体に機密データを保存することなく、ユーザーID情報を交換するセキュアな方法を提供します。
OAuth 2.0 セキュリティは標準化と同様に重要であるため、認証のための業界標準プロトコルである OAuth 2.0 が広く導入されています。OAuth 2.0フレームワークにより、アプリケーションはユーザーにパスワードの共有を要求することなく、別のアプリケーション・プラットフォーム上のユーザーデータへのアクセスを可能にします。これにより、個人および企業はデータをより詳細に管理できます。
OpenID Connect(OIDC)はOAuth 2.0を基盤としており、アプリケーションごとに個別のログイン認証情報を必要とすることなく、アプリケーションがユーザーの身元を確認できるようにします。
最後に、強固なAPIパフォーマンスを重く重視する企業にとって、API分析は新しい必須要件です。APIの利用パターンを先行的にモニターおよび分析することで、IT部門はパフォーマンスのボトルネック、セキュリティ・リスク、改善の機会を特定できます。API使用データを収集し、掘り下げるツールを提供するAPIマネージャーを探します。どのAPIが最も多く使用されているかを測定することで、企業はどこに投資すべきかを判断できます。たとえば、老朽化したERPソリューションのAPIがCRMのAPIよりも多く使用されている場合、ERPの改善または置き換えを優先することは理にかなっている可能性があります。
Oracle Cloud Infrastructure(OCI)は、APIのライフサイクルを管理する包括的なサービス・セットを提供しています。あらかじめ組み込まれたツールにより、開発者チームはコラボレーションしながら、APIのプロトタイプの作成やテスト、検証を簡単に行うことができます。Oracle Cloud Infrastructure API Gatewayは、APIおよびSOAベースのシステムに対して統合、高速化、ガバナンス、およびセキュリティの機能を提供し、チームがWeb APIをセキュアに管理および配信できるようにします。さらに、利用プランとサブスクリプションにより、APIオペレータはAPIを監視して収益化することもできます。
開発チームがAPIの仕組みを理解すれば、顧客や従業員が毎日使用するアプリケーションやサービスの多くを強化する、隠れたつながりに関するインサイトが得られます。今や開発者は、最初からすべてを構築するのではなく、APIを通じて公開されたデータおよび機能を利用することで、より迅速に、より適切に、より少ないコストでアプリケーションを構築することができます。
財務アプリケーションは、APIの主要かつ要求の厳しいユースケースです。CIOは、CFOが従業員と顧客の両方を満足させるシステムを提供できるように支援します。主要な財務プロセスの効率化を支援するその他の方法を紹介します。
APIの4つの種類を教えてください。
APIには4つの種類があります。公開API(誰でも使用可能です)、プライベートAPI(組織内で開発されたもの)、パートナーAPI(関連する組織のソフトウェア間で動作するように開発されたもの)、および複合API(複数の種類のAPIを組み合わせて使用するもの)です。
実際のAPIの例を教えてください。
パブリックAPIプロバイダーの好例としては、研究データ、画像、イベント追跡情報を共有するAPIを提供しているNASAが挙げられます。これらのAPIにより、開発者はMars Roverの更新情報やNASAが追跡した火山噴火などの自然現象の詳細など、特定のNASAのデータを取得し、自社アプリケーションの統合することができます。たとえば、ある天気予報アプリでは「火星からのライブ映像」という特集セクションを設け、NASAのAPIから取得した探査機の最新データをユーザーに提供することも可能です。
APIの作成は簡単ですか。
APIの作成は、特に経験豊富な開発者にとっては簡単なプロセスである場合があります。 APIはほとんどすべてのプログラミング言語でコーディングでき、RESTのような既存のアーキテクチャでは、操作のための確立されたガイドラインが提供されます。API開発を学ぶシンプルな方法は、公開されているオープンソースのAPIをリバースエンジニアリングして、APIの設計者がどのようにAPIを作成したかを確認することです。
REST APIを簡単に説明してください。
RESTは RESTfulと呼ばれることもあり、「representational state transfer」の略で、Webサービスを開発するために使用される標準プロトコルです。RESTは、さまざまなアプリケーションがスケーラブルかつ効率的な方法でインターネットを介して通信できるようにするためのルールとガイドラインのセットを提供します。RESTは、通常GET、PUT、POST、DELETEといったリクエストを、HTML、XLT、Python、JSON、PHP、またはプレーンテキストを使用して、クライアントとサーバー間のステートフルな関係構築を介さずに、アプリケーションがHTTP経由で行う方法を定義しています。