API とは?
- IAM 用語集
- API とは?
API とは、Application Programming Interface(アプリケーション・プログラミング・インターフェース)を表しており、開発者やエンドユーザーがその実装方法を知らなくても、異なるシステムやアプリケーションが相互に通信できるようにするためのプロトコルやルーチンの集合体のことです。これにより、開発者は再利用可能なソフトウェアコンポーネントを作成することができます。
開発者は、既存のサービスやアプリケーションが提供する機能にアクセスするために、API を使用することがよくあります。例えば、ある天気予報アプリが API を利用することにより、天気予報サービスプロバイダーから最新の天気予報データにアクセスすることができます。API は、アプリがデータを取得するために使用しなければならないリクエスト形式と、気象サービスから返されるデータの形式を指定します。
API はどのように機能する?
API は、ソフトウェアコンポーネント間の通信に関するルールとプロトコルのセットを指定することで機能します。API には通常、ルーチン、データ構造、オブジェクトクラス、変数などの仕様が含まれています。ここでは、API がどのように機能するかについてのハイレベルな概要を説明します。
クライアントがリクエストを行う。 クライアント(システムやアプリケーションのこと)は、API サーバーに対して、「データの取得」や「新しいリソースの作成」など、求める操作を指定したリクエストを送信します。リクエストには、必要なパラメータや認証情報が含まれます。
API サーバーがリクエストを処理する。 API サーバーがリクエストを受信し、指定された操作を実行する上で基礎となるアプリケーションとデータを使用して処理します。
API サーバーが応答を返す。 API サーバーは、操作が成功したかどうかを示すレスポンスをクライアントに返送し、成功した場合は関連データを提供します。レスポンスは、API の仕様に従ってフォーマットされます。
クライアントがレスポンスを処理する。 クライアントは API からレスポンスを受け取り、ユーザーに表示するなど必要に応じてデータを処理します。
このように、API を利用することで、ソフトウェアコンポーネントが相互に通信し、データや機能を交換することができます。API は通信のルールやプロトコルを定義しているので、異なる組織や個人が、異なるプラットフォームで、異なるプログラミング言語を使って開発したものであっても、異なるシステムやアプリケーション同士がやり取りすることができます。
さまざまなタイプの API とは?
ここでは、代表的な API のタイプを紹介します:
オープン API は、外部 API や公開 API とも呼ばれ、開発者や他のユーザーが最小限の制限で利用できるものです。公開 API は、不正利用を防ぐために、登録、アプリの承認、API 鍵を必要とする場合があります。
内部 API はプライベート API とも呼ばれ、企業内または同じ組織が有する異なるシステムやアプリケーション間でリソースやデータを共有するために使用されます。内部 API は、特定の組織内のユーザーのみがアクセスでき、外部ユーザーからは隠されています。
パートナー API はオープン API と似ていますが、特定の信頼できるパートナーによる利用を目的としています。これらの API へのアクセスは一般には制限されており、事前の承認が必要です。
複合 API(Composite API)は、特に複雑なユースケースへと取り組むために、異なる API タイプを組み合わせたものです。これにより、開発者は 1 つの API コールで複数のソースからデータを取得することができ、データアクセスのプロセスを簡素化することができます。
REST API(Representational State Transfer API)は、HTTP リクエストを使用して、データの取得、配置、投稿、削除を行う API です。REST とは、異なるシステム間でデータを交換するために、シンプルで軽量かつ柔軟なメカニズムを使用するアーキテクチャーのスタイルです。REST API は、通常、ウェブベースのアプリケーションやサービスにて使用されます。
SOAP API(Simple Object Access Protocol API)は、異なるシステムがインターネット上で通信できるようにする、標準ベースのウェブサービスアプローチです。SOAP は、メッセージ形式に XML を使用し、HTTP や SMTP などの他のウェブ標準に依存したトランスポートを行います。
XML-RPC と JSON-RPC は、それぞれ XML と JSON をデータ形式として使用するリモートプロシージャコール(RPC)API です。これらの API を使用することで、システムはリモートシステム上のプロシージャを通信し、呼び出すことができます。通常 HTTP を介して行われます。
Facebook により開発された GraphQL API は、API を構築し消費するための新しい API 規格です。従来の REST API に代わる、より効率的で強力かつ柔軟な選択肢を提供します。GraphQL API では、クライアントアプリケーションが必要なデータの構造を指定し、サーバーが要求されたデータのみを返すことができます。
API のタイプではそれぞれ長所と短所があり、異なるユースケースに適しています。特定のプロジェクトに適した API のタイプを選ぶには、プロジェクトの規模や複雑さ、想定する利用者、アクセスするデータの種類などの要因に依存します。
API の例は?
API はどこでも使用されています!ここではいくつかの例を紹介します。
Google Maps API は、開発者が自分のウェブサイトやアプリケーションに Google Maps の機能を追加することを可能にします。小売店では、オンラインストアディレクトリのデータを取得するために、Google Maps API を使用することがよくあります。
小売業者は PayPal API を使用して、顧客が PayPal を使用して支払えるようにできます。
別の例としては、開発者が自身のアプリケーションで Twitter のデータや機能にアクセスできるようにする Twitter API があります。Twitter API を使用すると、開発者はツイートの取得、ツイートの投稿や、ツイートの検索やユーザーのフォローなどのアクションを実行することができます。
旅行サイトでは、旅行者が航空券や宿泊施設などの旅行関連サービスを検索、予約できるように、API が多用されています。