Michael Chen |シニア・ライター| 2025年2月24日
「API」という用語は、アプリケーション・プログラミング・インターフェースを表します。APIはアプリケーション間のブリッジとして機能し、アプリケーション間の通信およびデータの共有を可能にします。たとえば、マーケティングチームが複数のソーシャルメディアアカウントを管理するためのダッシュボードは、各SNSプラットフォームと接続し、必要なデータを取得・表示するためにAPIを利用しています。
一般的なインターネットユーザーも、意識しないまま日常的にAPIの恩恵を受けています。たとえば、天気予報サイトの公開データを商用アプリに連携して嵐の接近を通知したり、開発者がGoogle Maps APIを利用して地図や位置情報サービスを自社サイトに埋め込んだりするのがその例です。小売業者は、PayPalやStripeなどのAPIを利用した支払ゲートウェイを使用して、顧客との財務取引を安全に処理します。
API (アプリケーション・プログラミング・インタフェース)は、アプリケーションがデータを交換したり、アクションを実行したり、適切にドキュメント化された方法で対話できるようにする一連のルールおよびプロトコルです。たとえば、天候更新のためにリクエストが行われた場合、APIはリクエストを処理し、必要なアクションを実行し、通常はJSONやXMLで定義されたような標準形式でレスポンスを返します。
主なポイント
APIを使用すると、開発者は、構築しているアプリケーションからソフトウェア・プラットフォームとサービスにネイティブにアクセスできます。APIを使用しない場合は、ユーザーが天気を確認したり、ソーシャル・メディア・サイトのコメントに応答したりするたびに、データを1つのアプリケーションから手動でエクスポートし、準備して変換してから、別のアプリケーションに手動でインポートする必要があります。
簡単に言えば、次の3つのパーティが交換プロセスに関与しています。
レストランの例で考えてみましょう。もしお客がキッチンに押しかけて、自分の料理を直接注文しようとしたら、大混乱になります。このシナリオでは、APIは、キッチン (サーバー・アプリケーション) が提供できるすべての料理 (サービス) が記載されたメニュー (ドキュメント) を提供し、そこにはお客(クライアント)がどんな情報を、どのような形式で出せばよいかが明確に記載されています。
APIはウェイターのような存在で、注文を正確かつ標準化された方法で伝え、結果を確実に受け取って届けてくれるのです。
APIは、ソフトウェア・コンポーネントの対話方法を指定することで機能するため、開発者は、すべてをゼロから構築する必要なく、異なるシステムを統合し、データや機能を共有できるため、時間とリソースを節約できます。APIは通常、通信に使用する必要があるメソッドとプロトコル、および交換可能なデータ形式を定義します。
APIは、次のような詳細を提供することで、アプリケーションの対話方法を定義します。
データをリクエストするクライアント・アプリケーションの開発者は、APIコールを行うためのコードを記述します。このコードは、次を指定します。
アプリケーションは、受信リクエストを管理するサーバー・アプリケーションのAPIゲートウェイにリクエストを送信します。APIゲートウェイは、ターゲット・アプリケーション内の適切なサービスにリクエストをルーティングします。サービスはリクエストを処理し、データを取得するか、別の必要なアクションを実行します。
次に、ターゲット・サービスは、API定義に従ってレスポンス・データを準備し、それをAPIゲートウェイを介してリクエスト元のアプリケーションに送信します。リクエスト元のアプリケーションは、データを受信して解析し、予想される結果をエンド・ユーザーに配信します。
開発者が他のアプリケーションやサービスのデータや機能にアクセスするための標準化された方法を提供するため、APIを使用すると、企業は一般的なホイールを再作成する必要がなくなります。それは時間とお金を節約する。また、標準化は、既存のシステムの運用を中断することなく、新しい機能やサービスをモジュール形式で追加できるようにすることで、イノベーションとスケーラビリティの両方を促進します。
ビジネス・レベルでは、APIは、ソフトウェアが他のソフトウェアと直接対話できるようにすることで、反復的なタスクやプロセスを自動化できるという点で重要です。ほとんどの企業が、より高いレベルのタスクのために従業員を解放するための自動化の追加に取り組んでいることを考えると、APIが手動のワークロードを減らし、運用効率を向上させることが大きなメリットです。クラウド・サービスの使用を増やすことを検討している組織も、APIに大きく依存しています。
APIコンポーネントは連携して動作し、様々なソフトウェア・システムがデータと機能を通信および交換できるようにします。これらのコンポーネントの理解は、APIをソフトウェアに正常に統合するために不可欠です。APIコンポーネントには次のものがあります。
APIには、レート制限、エラー処理および開発者向けのドキュメントが含まれる場合もあります。確かなAPIの作成には、アーキテクチャ・スタイルから設計ツールまで、一連の意思決定が伴います。これは、クラウドネイティブの未来を見据えた組織にとって貴重なスキルです。
APIを使用することで、開発者は分散アプリケーション(スマートフォン・アプリケーションなど)をソーシャル・メディアのWebサイトに接続したり、給与計算システムをビジネス銀行口座に接続できます。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バックエンドのロールを混乱させることは、もう1つの一般的な間違いです。どちらの機能も、受信時にAPIを処理する必要があり、2つの要素を簡単に混在させることができます。ただし、ゲートウェイのジョブは、リクエストを適切な場所にすばやくスクリーニングおよびルーティングすることです。APIバックエンドは、ビジネス・ロジックを提供しているため、各リクエストの処理に時間がかかります。
APIコールとAPIバックエンドの関係は1対1ではないことに注意してください。
APIには主に4つのタイプがあります。どちらを選択するかは、ユース・ケースによって異なります。モデルに定着する前に、アプリケーションの短期および長期の計画を検討してください。異なるAPIでのスワッピングは可能ですが、コストと複雑さが増します。
ほとんどの人は、天候や場所など、コンシューマAPIに精通しています。しかし、クラウド・サービスからデータベース、堅牢なビジネス・アプリケーションまで、企業が機能を利用できるようにする高度なAPIが揃っています。
たとえば、Oracleはサービス全体で幅広いAPIを提供しています。Oracle Cloud Infrastructure(OCI)を使用している企業は、APIを利用して、サブネット、セキュリティ・リスト、ルート表の作成、構成、管理など、仮想ネットワークをプログラムで管理できます。コンピュートAPIにより、管理者はOCIでコンピュート・インスタンスを起動、停止、再起動および構成できます。その他のAPIは、ITチームとオブジェクト・ストレージ、アイデンティティおよびアクセス管理機能を接続します。
革新的なスタートアップ企業もAPIを使用しています。例えば、Inworld.aiは、オンラインロールプレイングゲーム向けにAI駆動型のバーチャルキャラクターを提供しています。APIを使用することで、開発者はプレイヤーと現実的で没入感のある方法で相互作用する非プレイヤーキャラクター(NPC)を作成できます。APIは、ゲームデザイナーがキャラクターの属性、性格、行動を指定できるようにし、これによりNPCをカスタマイズしてゲームに深みと多様性をもたらすことができます。バーチャルキャラクターは、テキストや音声の入力を理解し、APIを介して応答することができます。
ドミノ・ピザがAPIを活用して音声アシスタントと連携し、顧客がデバイスに触れることなくピザを注文できる仕組みから、ウーバーがAPIを利用してリアルタイムデータに接続し、需要と交通状況に応じて配車料金を動的に調整する仕組みまで、この技術は現在、真のイノベーションを推進しています。
一般の人にとって、ソーシャルメディアの統合や支払い処理を可能にするAPIは馴染み深いものとなるでしょう。多くのWebサイトやアプリケーションは、コンテンツの共有などの一般的なソーシャル・メディア機能を有効にするために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へのリクエストまたはコールを行います。
サービング・アプリケーションはリクエストを処理し、認可されている場合は、アクションを実行するか、データを取得して、APIを介してJSONやXMLなどの構造化された形式でクライアントに返送します。
APIとデジタル・トランスフォーメーションの本質はクラウド活用にあり、その中核を担うのがAPIです。APIはクラウドネイティブなアーキテクチャにおいて不可欠な存在です。APIにより、クラウド内のサービスとシステムを統合でき、企業はレガシー・アプリケーションを新しいクラウド・サービスに接続できるため、業務を中断することなく、デジタル未来への段階的な移行が可能になります。また、APIを使用することで、企業は市場の変化や機会に迅速に対応できます。たとえば、決済ゲートウェイ、SNS連携、分析ツールなどの最新サービスをアプリケーションに直接組み込むことも可能です。
もう1つの変革的でAPI主導型のテクノロジは、マイクロサービスであり、独立したサービスと機能を好む最新のアプリケーション開発に対するアーキテクチャ・アプローチです。マイクロサービス・アーキテクチャでは、アプリケーションは、単一のタスクを効率的に実行する、含まれている構成要素に分割されます。マイクロサービスは、APIを使用して他のアプリケーションやサービスと通信します。アプリケーションには、わずか数個のマイクロサービスがあるか、数百または数千の可動部分で構成されている可能性があります。マイクロサービスベースのアプリケーションは、個々の要素が独立しているため、より迅速に拡張できます。これにより、レガシー・ソフトウェア開発で使用されるモノリシック・アーキテクチャによって妨げられる可能性のあるデジタル・トランスフォーメーション・イニシアチブに必要な俊敏性と柔軟性が得られます。
マイクロサービスを導入するクラウドネイティブ企業は、迅速に移行して新しい機会を獲得し、自動化を導入することができます。APIはその戦略を支えています。
企業は、クラウド、人工知能(AI)および機械学習(ML)の継続的な成長を促進するため、APIを開発し、リクエストと結果をAPIを介して伝達しています。しかし、API自体も進歩しています。
一例として、リバース(外向き)APIゲートウェイがあります。通常、APIゲートウェイは外部からのリクエストを受け取る役割を担います。ただし、APIゲートウェイが専門的なインターネットプロキシとして機能し、アプリケーションのネットワークトラフィックを転送するインフラストラクチャを提供しつつ、ITチームがトラフィックの状況を監視できるようにするケースもあります。外部通信のすべてがこのゲートウェイを通過する設計にすることで、IT部門はネットワークを離れるパケットを検査・監査し、自社のデータがどう使われているかを詳細に把握できます。
APIゲートウェイは、課金対象サービスの使用を追跡して、サービスが適切に使用され、収益が期待どおりに増加していることを確認することもできます。また、ゲートウェイは、デプロイメント前にアプリケーションの新しいバージョンをテストするのに役立ちます。テスト中、リクエストが本番システムからのものか、テスト対象のものかに応じて、コールを指示する必要がある場合があります。ゲートウェイは、必要な情報を導出してリダイレクションを実行できます。
新しいAPIレート制限およびスロットル手法は、ITチームがAPIアクセスを管理し、攻撃を防止するのに役立ちます。レート制限は、アプリケーションが特定の時間枠内に実行できるAPIコールの数を制限し、スロットルは、サーバーの負荷やアクティビティが悪意のある可能性があるとタグ付けされているかどうかなどの要因に基づいてアクセスを動的に調整します。
APIの動向を形作る他の主要なトレンドと基準には、セキュリティを犠牲にすることなく、オープン性と相互運用性に焦点を当てた取り組みが含まれます。企業は、次のようなトレンドに注目する必要があります。
OpenAPIイニシアチブ。OpenAPIイニシアチブ(OAS)は、APIを記述するための共通言語に取り組んでいる組織のコンソーシアムです。この標準化された形式は、より良いドキュメント、発見、および統合につながることを期待しています。
JSON Webトークン。もう1つのオープン標準作業である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が従業員と顧客の両方を満足させるシステムを提供できるように支援します。コア財務プロセスの合理化に役立つその他の方法を次に示します。
4つのタイプのAPIは何ですか。
APIには4つの種類があります。公開API(誰でも使用可能です)、プライベートAPI(組織内で開発されたもの)、パートナーAPI(関連する組織のソフトウェア間で動作するように開発されたもの)、および複合API(複数の種類のAPIを組み合わせて使用するもの)です。
実際のAPIの例を教えてください。
パブリックAPIプロバイダーの良い例はNASAで、研究データ、画像、イベント追跡情報を共有するAPIを提供しています。これらのAPIにより、開発者は、火星ローバーの更新や火山噴火などのNASAが追跡する自然イベントの詳細など、選択したNASAデータのフィードを取得し、独自のアプリケーションに統合することができます。たとえば、ある天気予報アプリでは「火星からのライブ映像」という特集セクションを設け、NASAのAPIから取得した探査機の最新データをユーザーに提供することも可能です。
APIの作成は簡単ですか?
特に経験豊富な開発者にとっては、APIの作成は簡単なプロセスになる可能性があります。APIはほぼすべてのプログラミング言語でコーディングでき、RESTなどの既存のアーキテクチャでは、作業するためのガイドラインが確立されています。API開発を学ぶ簡単な方法は、パブリック・オープン・ソースAPIをリバース・エンジニアリングして、アーキテクトがどのようにAPIを作成したかを確認することです。
REST APIの概要
RESTは、RESTfulとも呼ばれ、「表現状態転送」を表し、Webサービスの開発に使用される標準プロトコルです。RESTには、様々なアプリケーションがスケーラブルで効率的な方法でインターネットを介して通信できるようにするための一連のルールおよびガイドラインが用意されています。RESTは、クライアントとサーバー間のステートフルな関係を確立することなく、アプリケーションがHTML、XLT、Python、JSON、PHPまたはプレーン・テキストを使用してHTTPを介してリクエスト(通常はGET、PUT、POSTおよびDELETE)を行う方法を定義します。