アプリケーション プログラミング インターフェイス (API) とは何ですか?

アプリケーション プログラミング インターフェイス (API) は、ユーザー (人またはソフトウェア) と情報 (オンライン アプリケーションや Web アプリケーションによって提供されるデータ リソース) の 2 つのエンティティ間の通信を可能にする定義、ルール、プロトコルのセットです。

今日、API は最新のアプリケーションの基本フレームワークを形成し、ユーザー エクスペリエンスを向上させ、ビジネス モデルを強化します。 場合によっては、API 自体がビジネス モデルになることもあります。

API はどのように機能しますか?

API はアプリケーションの「公開面」であり、アプリケーションが実行する機能と提供できる情報を明らかにし、リクエストの適切な形式を定義します。 開発者がアプリケーションの API を作成して公開すると、他のアプリケーションがそのアプリケーションと通信できるようになります。

多くの場合、API はよく使用される機能をすぐに利用できるようにするため、開発者の貴重な時間を節約します。 既存のアプリケーションの機能を複製するのではなく、開発者は既存のアプリケーションの API を呼び出すことで、その機能をアプリケーションに統合できます。

WhatIsAnAPI-用語集

各 API の設計、展開、機能の方法は、そのアーキテクチャ スタイルまたはプロトコルによって異なります。

API アーキテクチャとプロトコルの種類

API アーキテクチャ、またはアーキテクチャ スタイルは、API の高レベルの設計を指します。これには、API の構造、編成、およびリクエスト/レスポンスの形式が含まれます。 API プロトコルでは、正確なメッセージも記述しながら、形式も指定します。

一般的な API アーキテクチャとプロトコルには次のものがあります。

  • REST – RESTful とも呼ばれるこのアーキテクチャ スタイルは、表現状態転送の原則に基づいています。 HTTP メソッド (GET、POST、PUT、DELETE など) と抽象化された情報 (リソースおよびリソース モデルの形式) を使用して、スケーラブルで柔軟性があり、技術的に独立した構造を作成します。 現在でも、REST は最も人気のある API アーキテクチャです。
  • GraphQL – Meta (旧 Facebook) によって開発されたオープンソースのクエリ言語。GraphQL アーキテクチャにより、1 回の API 呼び出しで複数のソースからデータを取得できます。 クライアントは必要なデータのみを要求するため、GraphQL API は REST API よりも効率的です (ただし、キャッシュ可能性は低くなります)。
  • SOAP – このアーキテクチャ アプローチでは、シンプル オブジェクト アクセス プロトコル(SOAP) を使用します。 SOAP メッセージは通常 XML 形式でフォーマットされるため、REST や GraphQL よりもサイズが大きくなります。 REST API とは異なり、SOAP API には API プロトコルの構造を定義する厳密な実装ガイドラインがあります。
  • WebSocket – この API プロトコルは全二重であるため、クライアントとサーバーは同時にメッセージを送受信できます。 さらに、サーバーは、クライアントの要求への応答ではなく、たとえばサーバー側のイベントによってトリガーされるメッセージを送信できます。 対照的に、REST API は厳密な要求応答パターンに従います。
  • RPCリモート プロシージャ コールを使用すると、開発者はリモート相互作用の詳細を指定する必要なく、ローカル関数と同じコードを使用して、異なるアドレス空間 (通常はリモート サーバー上) で実行される関数を呼び出すことができます。 複数の言語を使用できるため、このプロトコルは柔軟性があり、クライアントとサーバー間の通信でよく使用されます。 RPC の一例としては、gRPC (Google Remote Procedure Call) があります。
API は現在どのように使用されていますか?

API は現代のソフトウェアの重要な部分です。 今日、組織や企業はニーズに応じてさまざまな種類の API を構築または使用しています。

現在、組織で最も一般的な 4 種類の API は、パブリック API、プライベート API、パートナー API、サードパーティ API です。

パブリックAPI

パブリック API は、企業外のユーザーがアクセス可能 (有料または無料) であり、サードパーティの開発者とパートナーシップを構築して、ビジネス エコシステム全体を拡張できます。

パブリック API はサードパーティの開発者が新しい製品を構築するために使用できるため、イノベーションの推進に役立ち、新しいパートナーシップの構築に役立つ重要なツールとなります。

プライベートAPI

プライベート API にアクセスできるのは、企業内の内部チームのみです。 これらは、データのロックを解除して社内のコラボレーションを促進するのに役立ちます。また、組織の公開アプリケーション (Web サイトなど) を目に見えない形でサポートすることもあります。

プライベート API は社内ユーザーのみが利用できるため、組織は最適化を念頭に置いて構築できます。 プライベート API により、最新のアプリケーションの構成性が向上し、企業は最新のニーズに適応できるようになります。 開発者はマイクロサービスを構築しながらプライベート API を簡単に統合できるため、チーム間での重複作業が削減されます。

パートナーAPI

パートナー API は、ビジネス パートナーと直接統合するために使用されます (たとえば、航空会社がホテル チェーンと提携し、フライトと宿泊施設を同時に予約できる場合など)。 パートナー API は一般には公開されていません。両方のビジネスの認証 (AuthN) および承認 (AuthZ) 要件を満たす選ばれた開発者がアクセスできます。

相互運用性により、サイロが解体され、さまざまな組織が相互に通信できるようになるため、パートナー API との関係が強化されます。

サードパーティAPI

サードパーティ API は、組織がアプリケーションやサービスに不足しているデータや機能にアクセスするために使用されます。 これらの API はサードパーティのサーバー上で実行され、通常は広く必要とされるサービスを提供します (例として、多くの電子商取引 Web サイトで使用されている Stripe 支払い処理 API があります)。 API に応じて、組織は有料または無料で API を使用できます。

サードパーティ API は既に別の開発者または組織によって構築されているため、その明らかな利点の 1 つはコスト削減です。 さらに、サードパーティ API は、開発者が自分でコーディングするのではなく、機能をすぐに使用できるため、組織がアプリをより速く開発するための重要な手段として機能します。

API の作成にはどのアプリケーション言語が使用されますか?

ほぼすべての最新のプログラミング言語を使用して API をコーディングできます。API をコーディングする場合、多くの開発者はフレームワークを使用することを選択する場合があります。 フレームワークは、コード ライブラリやその他の必要なユーティリティなどのビルディング ブロックを提供し、言語を使用してアプリケーションをより迅速かつ容易に構築できるようにします。

通常、各プログラミング言語には、開発者の間で人気のあるフレームワークが 1 つ以上あります。 表には、いくつかのフレームワーク オプション (その多くはオープン ソース) がリストされています。

 

言語

フレームワーク

ジャワ

JavaScript、Node.js

AngularExpress.jsReactVue

PHP の

LaravelSlimSymfony

パイソン

ジャンゴフラスコ

さび

ロケットイチイアクティックスウェブ

ルビー

レール

どの言語とフレームワークを選択するかは、通常、プロジェクトのニーズや開発者の個人的な好みによって決まります。

API の例

今日の組織には、目標に合った最新のAPI 戦略が必要です。 API 戦略は、組織が API を設計、開発、管理、統制、保護する方法の計画を設定します。

Gartner の「ソフトウェア エンジニアリング リーダーのための API に関する 5 つの重要な教訓」によると、API 戦略を強化するためのベスト プラクティスは次の 5 つです。

  • API ガバナンスによってボトルネックが発生しないようにしてください。 イノベーションを継続的に推進するには、API ガバナンスと開発者の俊敏性のバランスを取る必要があります。
  • 収益化する予定がない場合でも、API を製品として扱います。 各 API に、ビジネス目標に一致する明確な目的と対象者がいることを確認します。
  • ハッカーより先に API を発見しましょう。 検出可能性を優先し、定期的に監視することで、セキュリティ侵害を防ぐことができます。
  • API のライフサイクルを管理します。 包括的な API ライフサイクル管理により、API が適切なセキュリティで継続的に実行されることが保証されます。
  • 最適な API テクノロジーを選択します。 ある組織で有効なものが、必ずしも他の組織でも有効であるとは限りません。そのため、現在および将来の特定の API ニーズを詳細に検討することが重要です。
API 接続とは何ですか?

API は開発者向けのツールとして始まりましたが、収益を増やし、企業の俊敏性をサポートする戦略的なビジネス資産へと成長しました。 API 接続とは、可視性、セキュリティ、ガバナンスの課題を解決することを目的として、モジュール式の再利用可能な API を使用してクラウド ネイティブ環境のデータとアプリケーションをリンクすることを指します。