本文へ移動

アプリケーションプログラミングインターフェース(API):定義、種類、用途

APIは、ソフトウェアの構成要素が通信するためのインターフェースを定義します。この記事では、APIの仕組み、主な種類、構成要素、歴史、用途、セキュリティやバージョニングなどの重要な実践を解説します。

アプリケーションプログラミングインターフェース(一般にAPIと略される)は、あるソフトウェア構成要素が別の構成要素にサービス、データ、機能を要求できるようにする、定義された規則とツールの集合である。APIは、利用可能な操作、入力および出力の形式、エラー時の挙動を規定することで、プログラム同士がどのようにやり取りするかを記述する。APIは、デスクトップアプリケーションやモバイルアプリケーションを、オペレーティングシステムのサービス、ソフトウェアライブラリ、リモートサービスへ接続するために用いられる。

画像ギャラリー

4 画像

APIの仕組み

APIは、呼び出し元(たとえばアプリケーションやスクリプト)と提供者(オペレーティングシステムやWebサービスなど)の間を仲介する層として機能する。呼び出し元は、APIの仕様に適合したリクエストを送ることでAPIを呼び出す。提供者は要求された処理を実行し、応答を返す。ローカルな環境では、APIはライブラリの関数またはクラスを公開することがある。分散環境では、APIは構造化されたリクエストを受け取り、構造化された応答を返すネットワークエンドポイントとして公開される。

主な構成要素と概念

  • エンドポイント:リクエストの送信先となるアドレスまたは入口。
  • メソッド/操作:実行できる名前付きの処理。たとえば、読み取り、作成、更新、削除がある。
  • パラメータとペイロード:APIに渡される構造化された入力データ、および呼び出し元に返される出力データ。
  • 認証と認可:本人性を確認し、アクセスを制御する仕組み。キー、トークン、OAuthなどが含まれる。
  • ドキュメントとSDK:開発者によるAPIの利用を支援する、人間および機械が読み取れる説明。

種類とスタイル

APIは、公開範囲とプロトコルによって分類できる。公開範囲による分類には、パブリック(オープン)API、パートナーAPI、内部(プライベート)API、複数の呼び出しを一つにまとめる複合APIがある。通信スタイルとしては、通常HTTPとリソース指向のURLを用いるRESTful API、手続きを公開するRPCスタイルのAPI、XMLメッセージを用いるSOAPベースのAPIが一般的である。APIはオペレーティングシステムやソフトウェアライブラリからも提供される。例として、ネイティブOSのサービス呼び出しであるオペレーティングシステムAPIや、ソフトウェアライブラリAPIが挙げられる。

歴史と発展

APIは、ソフトウェアシステムがより大規模かつモジュール化するにつれて発展してきた。初期のプログラマーは、システム内部でコードを共有するために、関数やライブラリのインターフェースを利用していた。ネットワークとWebの成長に伴い、APIはネットワーク越しに提供されるようになり、独立したシステム間の統合を可能にした。Web APIと標準化されたプロトコルの普及は、関連のないサービス同士の連携を容易にした。多くの著名なサービスは開発者向けインターフェースを公開している。たとえばソーシャルプラットフォームは、外部プログラムが更新情報へアクセスし、コンテンツを投稿できるようにWeb APIを公開している(Webサービス、およびTwitter APIなどの特定ベンダーのAPI)。

用途、重要性、ベストプラクティス

APIは現代のソフトウェアにとって中核的な存在である。システム間の統合を可能にし、モバイルアプリケーションやシングルページアプリケーションを支え、マイクロサービスアーキテクチャを支援し、サードパーティーの開発者がプラットフォームを拡張できるようにする。優れたAPI設計では、明確なドキュメント、予測可能なエラー処理、後方互換性を保つバージョニング、レート制限、認証、監視を含む堅牢なセキュリティ実践に重点が置かれる。APIはシステム機能への公開インターフェースであるため、その設計とガバナンスは技術面だけでなく、事業戦略の面でも重要である。

関連項目

著者

AlegsaOnline.com アプリケーションプログラミングインターフェース(API):定義、種類、用途

URL: https://ja.alegsaonline.com/art/5003

共有