ウィキペディアなど、MediaWikiに対して使えるAPIについては、MediaWikiの解説ページ
をご覧ください。アプリケーションプログラミングインタフェース(API、英: application programming interface)[注釈 1]とは、広義ではソフトウェアコンポーネント同士が互いに情報をやりとりするのに使用するインタフェースの仕様である。
APIには、サブルーチン、データ構造、オブジェクトクラス、変数などの仕様が含まれる。APIには様々な形態があり、POSIXのような国際標準規格、マイクロソフトのWindows APIのようなベンダーによる文書、プログラミング言語の標準ライブラリ(例えば、C++のStandard Template LibraryやJava API(英語版)など)がある。
商業的に使われる狭義では、各種システムやサービス(ハードウェア、OS、ミドルウェアおよびWebサービス等)を利用するアプリケーションソフトウェア (Application) を開発・プログラミング (Programming) するためのインタフェース (Interface) である[1][2][3][4][5]。こちらの意味では、システムやサービスから直接提供されないもの、例えば言語の標準ライブラリは含まない。
APIはアプリケーションバイナリインタフェース (ABI) とは異なる。APIはソースコードベースだが、ABIはバイナリインタフェースである。例えば、POSIXはAPIだが、Linux Standard Base (LSB) はABIである[6](LSBはいろいろな規定の集合なので、正確には「LSBには、ABIにまで踏み込んでいる部分もある」)。 広義のAPIでは単なるライブラリのインタフェースを含むかどうかにばらつきがあるなど定義が曖昧であるため、ここでは狭義のAPIについて説明する。 前述のとおりAPIは各種システム/サービスがそのシステム/サービスを利用するアプリケーションに対して公開するインタフェースである。APIの重要な役割は、システム/サービス提供者が公式に仕様(外部仕様)を定義し、管理している各種機能を利用するための操作方法(インタフェース)を提供することである。APIは多くの場合、アプリケーションを構築する言語と同じ言語のライブラリ、あるいは通信プロトコル形式[注釈 2]として提供され、システム/サービス開発者によって提供・管理される。 アプリケーションがシステム/サービスを利用するには、APIを無視してシステム/サービスの現在の実装および内部仕様に依存した方法がある。人と同じ操作をアプリケーションにさせたり、たまたま設定が書き込まれていたファイルをアプリケーションで読み取るなどである。この手法を非API[7]と言い英語圏ではnon-API[8][9]あるいはnon API[10]と呼ぶ。システム/サービス提供者はアプリケーションがAPI以外の仕様や実装に依存していることは関知せず、API以外の仕様や実装が永続的に維持されることも保証しない。このため非APIを使ったアプリケーションは、バグ修正などで少しでもシステム/サービスの内部仕様に変更があれば、たちまち動かなくなってしまう。この点、APIを使用する場合は、システム/サービスが更新されてもAPIが提供者によって後方互換性を維持してくれるため、アプリケーション側の変更は必要ない(ただし頻繁ではないが提供者により互換性がなくなる場合もある)。アプリケーションがシステム/サービスを操作するにあたり、APIにだけ依存することでこのような互換性の問題を避けることができる。 ただし、APIを使う場合、APIの提供者から使用回数などに制限を掛けられる場合があり[8]それをらの制限を回避するためやAPIを提供していないシステム/サービスを使うために非APIを使う技術が重要になる場合もある。 #(参考情報)ライブラリー形式の非API、#(参考情報)ライブラリとAPIも参照 APIはソフトウェアライブラリと対応しているのが一般的である。
概要
APIと非API
詳細
ライブラリとフレームワーク
Size:72 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef