APIとは何ですか。
API は、アプリケーションがデータと機能を簡単かつ安全に交換できるようにすることで、ソフトウェア開発とイノベーションを簡素化します。
IBM API 管理ソリューションについて学習する
スタンドアップデスクでコンピューターで作業する人
APIとは何ですか。

API、またはアプリケーション プログラミング インターフェイスは、さまざまなアプリケーションが相互に通信できるようにする一連の定義済みルールです。システム間のデータ転送を処理する仲介レイヤーとして機能し、企業はアプリケーションのデータと機能を外部のサードパーティ開発者、ビジネスパートナー、社内部門に公開することができます。

API 内の定義とプロトコルは、企業が日常業務で使用するさまざまなアプリケーションを接続するのに役立ちます。これにより、従業員の時間が節約され、コラボレーションやイノベーションを妨げるサイロが解消されます。開発者にとって、API ドキュメントはアプリケーション間の通信用のインターフェイスを提供し、アプリケーションの統合を簡素化します。

API の仕組み

API がどのように機能するかを理解する簡単な方法は、一般的な例であるサードパーティの支払い処理を見ることです。ユーザーが e コマース サイトで製品を購入するとき、「Paypal で支払う」または別の種類のサードパーティ システムを使用するように求められる場合があります。この関数は、API に依存して接続を確立します。

  • 購入者が支払いボタンをクリックすると、API が呼び出されて情報 (リクエストとも呼ばれます) が取得されます。このリクエストは、API の URI (Uniform Resource Identifier) を介してアプリケーションから Web サーバーに処理され、リクエスト動詞、ヘッダー、および場合によってはリクエスト本文が含まれます。
     

  • 製品 Web ページから有効なリクエストを受信した後、API は外部プログラムまたは Web サーバー (この場合はサードパーティの支払いシステム) を呼び出します。
     

  • サーバーは、要求された情報を含む応答を API に送信します。
     

  • API は、最初にリクエストを行ったアプリケーション (ここでは製品 Web サイト) にデータを転送します。

データ転送は使用する Web サービスによって異なりますが、リクエストと応答はすべて API を通じて行われます。ユーザー インターフェイスには可視性がありません。つまり、API はコンピューターまたはアプリケーション内でデータを交換し、ユーザーにはシームレスな接続のように見えます。

API のメリット

API を使用すると、新しいアプリケーションとサービスの設計と開発、および既存のアプリケーションとサービスの統合と管理が簡素化されます。しかし、開発者や組織全体にとっては、それ以外にも大きなメリットがある。

コラボレーションの向上。 平均的な企業では、 1,200近くのクラウドアプリケーション(リンク先はibm.com外)を使用しており、その多くは接続されていない。 API を使用すると統合が可能になり、これらのプラットフォームとアプリが相互にシームレスに通信できるようになります。この統合により、企業はワークフローを自動化し、職場でのコラボレーションを向上させることができます。API がなければ、多くの企業は接続が不足し、情報サイロが発生して生産性とパフォーマンスが損なわれることになります。

イノベーションの加速API は柔軟性を提供するため、企業は新しいビジネス パートナーとつながり、既存の市場に新しいサービスを提供し、最終的には巨額の利益を生み出し、デジタル トランスフォーメーションを推進できる新しい市場にアクセスできるようになります。たとえば、Stripe という会社は、わずか 7 行のコードからなる API としてスタートしました。それ以来、同社は世界の大企業の多くと提携し、ローンや法人カードを提供するまでに多角化し、最近では 360億米ドルと評価されました (リンクはibm.com外に存在)。

データの収益化多くの企業は、自社ブランドを中心とした開発者の聴衆を構築し、潜在的なビジネス パートナーとの関係を築くことができるよう、少なくとも最初は API を無料で提供することを選択しています。API が貴重なデジタル資産へのアクセスを許可すると、企業はアクセスを販売することでそれを収益化します。これは API エコノミーと呼ばれます。 AccuWeather (リンクはibm.comの外にあります)が、幅広いAPIパッケージを販売するためにセルフサービスの開発者ポータルを立ち上げたとき、わずか10ヶ月で24,000人の開発者を集め、11,000個のAPIキーを販売し、その過程で活発なコミュニティを構築しました。

システムセキュリティAPI は、要求側のアプリケーションを応答側のサービスのインフラストラクチャから分離し、通信時に両者の間にセキュリティ層を提供します。例えば、APIコールは一般的に認証クレデンシャルを必要とする。HTTPヘッダー、クッキー、クエリー文字列はデータ交換中に追加のセキュリティを提供することができ、 APIゲートウェイは さらにセキュリティの脅威を最小化するためにアクセスを制御することができる。

エンドユーザーのセキュリティとプライバシーAPI がネットワーク内で追加の保護を提供するのと同じように、個人ユーザーにも別の保護層を提供できます。Web サイトがユーザーの位置情報 (位置情報 API を介して提供される) をリクエストすると、ユーザーはこのリクエストを許可するか拒否するかを決定できます。多くの Web ブラウザーや iOS などのモバイル オペレーティング システムには、API がアプリケーションとそのデータへのアクセスを要求するときに許可構造が組み込まれています。アプリが API を通じてファイルにアクセスする必要がある場合、Windows、Mac、Linux などのファイル システムはそのアクセスにアクセス許可を使用します。

動作中の API: 一般的な例

API を使用すると、企業はセキュリティと制御を維持しながらリソースにオープンにアクセスできるため、最新のビジネス アプリケーションや個人アプリケーションの貴重な側面となっています。ユーザーがほぼ毎日目にする API の使用例をいくつか紹介します。

  • ユニバーサル ログイン: 一般的な API の例は、ユーザーが Facebook、Twitter、または Google プロフィールのログイン詳細を使用して Web サイトにログインできるようにする機能です。この便利な機能により、どの Web サイトでも、最も人気のあるサービスの API を利用して迅速な認証を行うことができ、Web アプリケーションや新しいメンバーシップごとに新しいプロファイルを設定する時間と手間が節約されます。
     

  • モノのインターネット (IoT): これらの「スマート デバイス」は、API を通じてインターネット対応のタッチスクリーンやデータ収集などの追加機能を提供します。たとえば、スマート冷蔵庫はレシピ アプリケーションに接続したり、メモを作成してテキスト メッセージ経由で携帯電話に送信したりできます。内蔵カメラはさまざまなアプリケーションに接続できるため、ユーザーはどこからでも冷蔵庫の中身を見ることができます。
     

  • 旅行予約の比較: 旅行予約サイトは何千ものフライトを集約し、日付と目的地ごとに最も安いオプションを表示します。このサービスは、Web ブラウザまたは旅行予約会社独自のアプリケーションを介して、アプリケーション ユーザーがホテルや航空会社の空室状況に関する最新情報にアクセスできるようにする API を通じて可能になります。API はデータとリクエストを自律的に交換するため、利用可能な航空券や宿泊施設の確認にかかる時間と労力を大幅に削減します。
     

  • 地図アプリ: 静的またはインタラクティブな地図を表示するコアAPIに加えて、これらのアプリは、道順、制限速度、興味のあるポイント、交通警告などをユーザーに提供するために、他のAPIや機能を使用しています。ユーザーは、旅行ルートをプロットしたり、配達車両のような移動中のアイテムを追跡するときにAPIと通信します。
     

  • Twitter: 各ツイートには、作成者、固有 ID、メッセージ、投稿時のタイムスタンプ、位置情報メタデータなど、わかりやすいコア属性が含まれます。 Twitterは、公開ツイートと返信のコア属性を開発者が利用できるようにし、開発者が会社のAPIを介して他のウェブページにツイートを投稿できるようにしています。
     

  • SaaS アプリケーション: API は、SaaS (Software-as-a-Service) 製品の成長に不可欠な部分です。CRM (顧客関係管理ツール) などのプラットフォームには、企業がメッセージング、ソーシャル メディア、電子メール アプリなど、すでに使用しているアプリケーションと統合できるようにするための API が多数組み込まれていることがよくあります。これにより、販売タスクとマーケティング タスクのアプリケーション間の切り替えにかかる時間が大幅に短縮されます。また、異なるアプリケーションを使用する部門間に存在する可能性のあるデータサイロを軽減または防止するのにも役立ちます。

API タイプ

現在、ほとんどの API は、アプリケーションのデータと機能をインターネット上に公開する Web API です。Web API の主な 4 種類を次に示します。

  • オープン API は、 HTTP プロトコルを使用してアクセスできるオープンソースのアプリケーション プログラミング インターフェイスです。パブリック API とも呼ばれ、API エンドポイントとリクエストおよびレスポンスの形式が定義されています。
     

  • パートナー API は 戦略的なビジネス パートナーを接続します。通常、開発者は公開 API開発者ポータルを通じてセルフサービスモードでこれらのAPIにアクセスする。 ただし、オンボーディング プロセスを完了し、パートナー API にアクセスするためのログイン資格情報を取得する必要があります。
     

  • 内部 API は 外部ユーザーから隠されたままになります。これらのプライベート API は社外のユーザーは利用できませんが、代わりに、社内のさまざまな開発チーム間の生産性とコミュニケーションを向上させることを目的としています。
     

  • 複合 API は、 複数のデータ API またはサービス API を結合します。これにより、プログラマは 1 回の呼び出しで複数のエンドポイントにアクセスできます。複合 API は、単一のタスクの実行に複数のソースからの情報が必要となるマイクロサービス アーキテクチャで役立ちます。

API プロトコル

Web API の使用が増加するにつれて、受け入れられるデータ型、コマンド、構文を作成する一連の定義されたルール、つまり API 仕様をユーザーに提供する特定のプロトコルが開発されました。実際、これらの API プロトコルは標準化された情報交換を容易にします。

  • SOAP (Simple Object Access Protocol): XML で構築された SOAP により、エンドポイントは SMTP および HTTP を介してデータを送受信できます。SOAP API を使用すると、異なる環境で実行されている、または異なる言語で記述されているアプリまたはソフトウェア コンポーネント間で情報を共有することが容易になります。
     

  • XML-RPC (XML-Remote Procedure Call): XML-RPC プロトコルは、特定の XML 形式に依存してデータを転送します。XML-RPC は SOAP よりも古いものですが、SOAP よりもはるかにシンプルで、最小限の帯域幅を使用するという点で比較的軽量です。
     

  • JSON-RPC: XML-RPC と同様、JSON-RPC はリモート プロシージャ コールですが、データの転送には XML の代わりに JSON (JavaScript Object Notation) が使用されます。

  • REST (Representational State Transfer): REST は、一連の Web API アーキテクチャ原則です。REST API(RESTful APIとも呼ばれる)は、特定のRESTアーキテクチャの制約を遵守するAPIです。SOAP プロトコルを使用して RESTful API を構築することは可能ですが、通常、2 つの標準は競合する仕様とみなされます。

従来、API は、JavaScript などの低レベル プログラミング言語で作成されたアプリケーションに接続されるインターフェイスを指しました。ただし、最新の API は REST 原則と JSON 形式に準拠しています。これらは一般的にHTTP用に構築されており、 Java、Ruby、Python、その他多くの言語で書かれたアプリケーションに容易にアクセスでき、広く理解される、開発者フレンドリーなインターフェースを実現している。

API とウェブサービスの違い

Web サービスは、Web アドレス経由でアクセスし、データ転送を容易にするソフトウェア コンポーネントです。Web サービスはアプリケーションのデータと機能を他のアプリケーションに公開するため、事実上、すべての Web サービスが API になります。ただし、すべての API が Web サービスであるわけではありません。

API は、切断された 2 つのアプリケーション間の仲介として機能するソフトウェア コンポーネントです。Web サービスもアプリケーションを接続しますが、そのためにはネットワークが必要です。一部の API がオープンソースである場合、Web サービスは通常プライベートであり、承認されたパートナーのみがアクセスできます。

API、マイクロサービス、クラウドネイティブ開発

マイクロ サービスは、アプリケーションをより小さく独立したコンポーネント(マイクロサービスとも呼ばれる)に分割し、REST APIを使用して接続するアーキテクチャスタイルです。アプリケーションを個別のサービスの集合体として構築することで、開発者は1つのアプリケーション・コンポーネントを他のコンポーネントから独立して作業できるようになり、アプリケーションのテスト、保守、拡張が容易になります。

マイクロサービス・アーキテクチャは クラウド・コンピューティングの台頭とともに普及 し、 コンテナや Kubernetesとともに、クラウド・ネイティブ・アプリケーション開発の基盤となっています。

関連ソリューション
IBM クラウドオートメーション

インテリジェントな自動化を選択して、組織全体の大規模なビジネスおよび IT 運用を処理します。

クラウドオートメーションの詳細を見る
IBM API Connect®

複数のクラウドにわたる API ライフサイクルを管理し、ソーシャル化を促進し、ビジネス エコシステム全体での収益化の取り組みを最適化します。

IBM API Connect®の詳細
IBM Cloud Pak® for Integration

クローズドループ AI オートメーションを使用して、複数のスタイルの統合をサポートします。

Cloud Pak for Integrationの詳細はこちら
統合ソリューション

統合ソリューションによる接続、自動化、ビジネスの可能性の解放

統合ソリューションの詳細を見る
参考情報 コンテナとは何ですか?
コンテナは、アプリケーション コードとそのライブラリおよび依存関係をパッケージ化した実行可能ファイルであり、従来の IT または任意のクラウド上で実行できます。
Kubernetesとは?
Kubernetes は、コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを自動化するオープンソースのコンテナ オーケストレーション プラットフォームです。
The Forrester Wave™: API 管理ソリューション、2022 年第 3 四半期
API Management がデジタル ビジネスの推進にどのように重要であるか、また、現在の製品、戦略、市場プレゼンス スコアに基づいて IBM が API Management 環境において他のベンダーとどのように比較されるかを学びます。
次のステップ

IBM API Connect®は、直感的な使い勝手により、APIの作成、管理、セキュリティーの確保、ソーシャル化、収益化までライフサイクル全体を一貫して支援し、オンプレミスおよびクラウド全体におけるデジタル・トランスフォーメーションを強力に後押しするAPI管理ソリューションです。お客様との取引先は、デジタル・アプリケーションを強化し、リアルタイムでイノベーションを推進することができます。IBM API Connect は、IBM Cloud Pak for Integration の一部として他の機能とともに使用することもできます。これは、クラウドへの移行の一環としてアプリケーションの最新化と API 管理を自動化するのに役立ちます。

IBM API Connect®の詳細