ホーム Topics アプリケーション・プログラミング・インターフェース(API)とは| IBM API(アプリケーション・プログラミング・インターフェース)とは
IBMのAPIソリューションの詳細はこちら AI関連の最新情報の購読
ギア、ロボット・アーム、携帯電話の絵文字のコラージュの図

公開日:2024年4月9日
寄稿者:Michael Goodwin

APIとは

API(アプリケーション・プログラミング・インターフェース)とは、ソフトウェア・アプリケーションが相互に通信し、データや機能、特徴を交換できるようにするための一連のルールまたはプロトコルです。

APIを使用すると、開発者はゼロから開発するのではなく、他のアプリケーションのデータ、サービス、機能を統合できるため、アプリケーションとソフトウェアの開発を簡素化および加速できます。また、APIを使用すると、アプリケーション所有者は、アプリケーションのデータや機能を組織内の部門が簡単かつ安全に利用できるようになります。アプリケーション所有者は、データや機能をビジネスパートナーや第三者と共有したり、販売したりすることもできます。

API を使用すると、必要な情報のみを共有し、その他の内部システムの詳細を隠すことができるため、システムのセキュリティに役立ちます。 サーバーやデバイスはデータを完全に公開する必要はありません。API を使用すると、特定のリクエストに関連する小さなデータ パケットを共有できます。

API ドキュメントは、API の詳細と、API とそのサービスの操作方法に関する開発者向けの情報を提供する技術取扱説明書のようなものです。 適切に設計されたドキュメントは、ユーザーの API エクスペリエンスを向上させ、一般に API の成功を促進します。

企業全体のインテリジェント・オートメーションのガイド

インテリジェントな自動化がどのようにビジネス運営の競争力を高めることができるかを学びましょう。

関連コンテンツ

FinOps を運用するためのガイドに登録する

AIでAPIベースのエージェントを最適化する方法を知る
APIはどのように機能するのでしょうか?

API通信をクライアントとサーバー間のリクエストとレスポンスの観点から考えると便利です。リクエストを送信するアプリケーションはクライアントであり、サーバーがレスポンスを提供します。APIは、それらの間の接続を確立するブリッジです。

APIの仕組みを理解する簡単な方法は、一般的な例であるサード・パーティーの決算方法を見ることです。ユーザーがeコマースサイトで商品を購入するとき、「Paypal で支払う」または別の種類のサード・パーティーの決済システムを使用するように求められることがあります。この機能はAPIに依存しています。

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

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

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

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

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

API タイプ

APIは、データAPI、オペレーティング・システムAPI、リモートAPI、Web APIなど、ユース・ケース別に分類できます。

データ (またはデータベース) API

アプリケーションとデータベース管理システムを接続するために使用されます。

オペレーティング・システム (ローカル) API

アプリがオペレーティング・システムのサービスとリソースを使用する方法を定義するために使用されます。

リモート API

さまざまなデバイス上のアプリケーションがどのように対話するかを定義するために使用されます。

Web API (英語)

HTTP プロトコルを使用してインターネット経由でデータと機能を転送できるようにするために使用されます。

現在、ほとんどのAPIはWeb APIです。Web APIはリモートAPI(APIがプロトコルを使用して外部リソースを操作することを意味する)の一種であり、アプリケーションのデータや機能をインターネット上で公開します。

Web APIには、主に次の4つのタイプがあります。

オープンAPI

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

パートナーAPI

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

内部 API

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

複合 API

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

APIの例

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

ユーザーがよく見かける API の例をいくつか示します。

ユニバーサルログイン

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

モノのインターネット(IoT)

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

旅行予約の比較

旅行予約サイトは何千ものフライトを集約し、あらゆる日付と目的地の最も安いオプションを紹介している。APIは、ホテルや航空会社の空室状況に関する最新情報へのアクセスをアプリケーション・ユーザーに提供することで、このサービスを可能にする。

このアクセスは、ウェブブラウザーまたは旅行予約会社独自のアプリケーションから利用できる。API はデータとリクエストを自律的に交換するため、利用可能な航空券や宿泊施設の確認にかかる時間と労力を大幅に削減します。  

ナビゲーション アプリ

ナビゲーション・アプリは、静的または対話型の地図を表示するコア API を使用します。これらのアプリは、他の API や機能も使用して、道順、制限速度、名所、交通警告などをユーザーに提供します。ユーザーは、移動ルートを計画したり、配送車両などの移動中のアイテムを追跡したりするときに API と通信します。

ソーシャル・メディア

ソーシャル・メディア企業は API を使用して、他の企業がソーシャル・メディア・アプリで紹介されているコンテンツを共有したり、自社のサイトに埋め込んだりできるようにします。たとえば、Instagram APIを使用すると、企業はInstagramグリッドをWebサイトに埋め込むことができ、ユーザーが新しい投稿を追加するとグリッドが自動的に更新されます。

SaaS アプリケーション

APIは、ソフトウェア・アズ・ア・サービス(SaaS)製品の成長に不可欠です。CRM(顧客関係管理ツール)などのプラットフォームには、多くの場合、企業がメッセージング、ソーシャル・メディア、電子メール用アプリケーションなど、現在使用中のアプリケーションと連携できる組み込みAPIがいくつか含まれています。

この連携により、販売およびマーケティングのタスク用のアプリケーション間の切り替えにかかる時間が大幅に短縮されます。また、異なるアプリケーションを使用する部門間に存在しうるデータのサイロを排除または回避するのにも役立ちます。

APIプロトコル、アーキテクチャスタイル、言語

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

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

 

SOAP (簡易オブジェクトアクセスプロトコル)

SOAP は、軽量の XML ベースのメッセージング プロトコル仕様で、エンドポイントが SMTP (簡易メール転送プロトコル) や HTTP (ハイパーテキスト転送プロトコル) などのさまざまな通信プロトコルを通じてデータを送受信できるようにします。 SOAPは独立しているため、SOAP APIは異なる環境で動作するアプリやソフトウェア・コンポーネント間、あるいは異なる言語で書かれたアプリやソフトウェア・コンポーネント間で情報を共有することができる。

リモート プロシージャ コール (RPC)

リモート・プロシージャー・コール (RPC) は、オペレーティング・システムで使用される高レベルの通信パラダイムを提供するプロトコルです。RPC は、通信プログラム間でメッセージデータを伝送するための、伝送制御プロトコル/インターネット・プロトコル (TCP/IP) やユーザー・データグラム・プロトコル (UDP) などの低レベル転送プロトコルの存在を前提としています。

RPC は、ネットワークアプリケーションのサポート専用に設計された論理的なクライアント/サーバー通信システムを実装しています。RPC プロトコルを使用すると、ユーザーはリモート・プロシージャーがローカルであるかのように操作できます。1

XML-RPC (XML- リモートプロシージャコール)

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

JSON-RPC

XML-RPC と同様、JSON-RPC は、XML の代わりに JSON (JavaScript Object Notation) を使用するリモート プロシージャ コールです。 JSON は、解析が簡単で、名前と値のペアと順序付けられた値のリストを使用するデータ交換用の軽量形式です。 JSON はユニバーサル データ構造を使用しているため、あらゆるプログラミング言語で使用できます。

ジーアールピーシー

gRPC は、Google によって最初に開発された高性能のオープンソース RPC フレームワークです。 gRPC はネットワーク プロトコル HTTP/2 とプロトコル バッファー データ形式を使用し、マイクロサービス アーキテクチャでサービスを接続するために一般的に使用されます。

ウェブソケット

WebSocket API により、クライアントとサーバー間の双方向通信が可能になります。 このタイプの API では、通信ごとに新しい接続を確立する必要はありません。一度接続が確立されると、継続的な交換が可能になります。 このため、Web Socket API はリアルタイム通信に最適です。

REST (表現状態転送)

RESTは、ウェブAPIアーキテクチャの原則のセットでです。REST API(RESTful APIとも呼ばれる)は、特定のRESTアーキテクチャの制約を遵守するAPIです。REST APIは、GET、PUT、HEAD、DELETEといったHTTPリクエストを使ってリソースとやりとりします。RESTはデータをリソースとして利用できるようにし、各リソースは一意のURIで表されます。クライアントはリソースのURIを指定してリクエストします。

REST API はステートレスであり、リクエスト間でクライアント データを保存しません。 SOAP プロトコルを使用して RESTful API を構築することは可能ですが、実務者は通常、2 つの標準を競合する仕様と見なしています。

GraphQL

GraphQL は、クライアントが API と対話する方法を指定するオープンソースのクエリ言語およびサーバー側ランタイムです。2  GraphQL を使用すると、ユーザーは多くのパラメーターを含む複雑なエンドポイントにアクセスする必要がなく、わずか数行で API リクエストを行うことができます。この機能により、API クエリ、特に複数のリソースを対象とするより複雑なリクエストや特定のリクエストの生成と応答が容易になります。

レストとソープの比較

SOAP と REST は、API 設計に対するさまざまなアプローチを表し、API が他のアプリケーションとどのように対話するかに関するルールと標準を記述します。SOAP はプロトコルですが、REST はアーキテクチャ スタイルを構成する一連の制約です。どちらもHTTPを使用して情報を交換します。

RESTは軽量で、柔軟で、透過的で、比較的使いやすいので、SOAPに代わるよりシンプルな選択肢とみなされることが多くなります。

SOAPは(型チェックにより)より外部からの変更が難しく堅固であり、多くの開発ツールにSOAPサポートが組み込まれているため、使いやすいというのが支持者の主張です3。SOAPにはコンプライアンスが組み込まれており、開発者はしばしば、より安全なプロトコルで、データの完全性が厳しく要求される状況に適していると考えています。

RESTfulシステムは、プレーンテキスト、HTML、YAML、XML、JSONなどのさまざまな形式のメッセージングをサポートしますが、SOAPはXMLのみに対応します。それぞれに長所があり、「正しい選択」はユースケースによって異なる場合があります。ただし、データの保存と交換に複数の形式をサポートできることが、最近のパブリックAPIの構築にRESTが一般的な選択肢となっている理由の1つです。

RESTとGraphQLの比較

GraphQLは、Facebookが2012年に社内で開発したクエリ言語およびAPIランタイムであり、 2015年にオープンソース化されました。GraphQLとRESTは両方ともステートレスであり、クライアント/サーバーモデルを使用し、HTTPを使用します。GraphQLは、RESTのいくつかの制限を解決しており、たとえば、単一のリクエストで必要なリソースをより正確にターゲットにする機能を提供します。

REST APIは固定構造に従い、常に指定されたオブジェクトのデータ・セット全体を返します。たとえば、リクエストがより複雑で、複数のリソースにまたがる場合、クライアントはリソースごとに個別のリクエストを送信する必要があります。これらの制限により、フェッチ不足または過剰フェッチの問題が発生する可能性があります。

GraphQLとRESTの詳細を読む

REST APIもGraphQL APIも本質的に優れているわけではありません。これらは、さまざまなタスクに適したさまざまなツールです。

RESTは一般的に実装が簡単で、アクセス制御が厳しく、キャッシュ可能な通信プロトコルが好まれる場合(一例として、ShopifyやGitHubのような一般向けのeコマースサイト)に適しています。

GraphQL APIを使用すると、より柔軟で効率的なデータ取得が可能になり、システムのパフォーマンスと開発者の使いやすさが向上します。これらの機能により、GraphQLは、フロントエンドの要件が急速に変化する複雑な環境でAPIを構築する場合に特に役立ちます。4

API、Webサービス、マイクロサービス
APIとウェブサービスの違い

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

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

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

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

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

APIのメリット

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

コラボレーションの向上

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

イノベーションの加速

API は柔軟性を提供し、企業が新しいビジネス パートナーとつながり、既存の市場に新しいサービスを提供できるようにします。 このような柔軟性により、企業は新たな市場へのアクセスも可能になり、リターンを高め、デジタルトランスフォーメーションを推進することができる。

たとえば、Stripe という会社は、わずか 7 行のコードからなる API としてスタートしました。以来、同社は世界最大手の企業の多くと協力してきました。 Stripe はローンや法人カードの提供に事業を多角化し、最近 650 億ドルの評価額を獲得しました (リンクは ibm.com 外部にあります)。

データの収益化

多くの企業は、自社ブランドを中心とした開発者のオーディエンスを構築し、潜在的なビジネスパートナーとの関係を築くことができるよう、少なくとも最初はAPIを無料で提供することを選択しています。APIが貴重なデジタル資産へのアクセスを許可すると、企業はアクセスを販売することでそれを収益化します。この慣行はAPIエコノミーと呼ばれています。

AccuWeather(ibm.com外部リンク)が幅広いAPIパッケージを販売するセルフサービス開発者ポータルを開始したとき、同社はわずか10か月で24,000人の開発者を集め、11,000個のAPIキーを販売しました。この動きは、その過程で活発なコミュニティーを構築するのに役立ちました。

システム・セキュリティー

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

ユーザーのセキュリティーとプライバシー

APIは、ネットワーク内の保護を強化します。また、個人ユーザーに対して別の保護層を提供することもできます。ウェブサイトがユーザーの位置情報を要求すると(位置情報APIがこの情報を提供する)、ユーザーはこの要求を許可するか拒否するかを決定できる。

多くのWebブラウザー、デスクトップおよびモバイル・オペレーティング・システムには、権限構造が組み込まれています。アプリがAPIを通じてファイルにアクセスする必要がある場合、iOS、macOS、Windows、Linuxなどのオペレーティング・システムは、そのアクセスにアクセス許可を使用します。

関連ソリューション
IBM® API Connect

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

IBM API Connectの詳細
IBM統合ソリューション

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

統合ソリューションの詳細を見る
iPaaSソリューション

オンプレミス、プライベートクラウド、パブリッククラウド内のいずれの環境でも、アプリケーション、データ、業務プロセス、サービスを接続できます。

IBM iPaaSソリューションの詳細はこちら
次のステップ

IBM API Connectを使用して、エンタープライズAPIをそのライフサイクル全体を通じて保護および管理します。これにより、貴社および貴社の顧客はエンタープライズAPIを一貫して作成、管理、保護、社会化し、収益化することができ、IBM MarketplaceおよびAWSでとてもスケーラブルなAPI管理プラットフォームとしても利用可能です。

API Connectの詳細はこちら デモの予約
脚注

1Remote Procedure Call(リモート・プロシージャ・コール)」、ibm.com、2023年11月3日

2What is GraphQL(GraphQLとは何か)」、Chrystal R. China、ibm.com、2023年12月8日
3 「Comparing REST and SOAP(RESTとSOAPの比較)」ibm.com、2021年3月5日

4GraphQL vs. REST API: What's the difference?(GraphQLとREST APIの違い)」Chrystal R. China、ibm.com、2024年3月29日