API
API(Application Programming Interface)とは、ソフトウェア開発において、コンポーネントの機能を利用するために提供されるインターフェイスである。
概要[編集]
コンピュータープログラミングによるソフトウェア開発では、よく使う機能をコンポーネントという単位でまとめて再利用する手法がよく用いられる。APIとは、コンポーネントの機能を呼び出すためのインターフェイスのことで、一般には公開された関数・メソッドなどを指す。
2000年代前半頃から[1]HTTPプロトコルに基づくWebコンポーネント[2]が広く利用されており、このインターフェイスはWeb APIと呼ばれる。単にAPIと言った場合にWeb APIを指すことも多くなった。
各論[編集]
APIはそれの示す範囲が広いので、ここでは個々の具体例を挙げる。
OSのAPI[編集]
ソフトウェアがOSの機能を利用する場合、OSが提供するAPIを経由して行う。
例えば、OSが管理するプロセス、メモリー、ファイルシステムなどのリソースへのアクセスは、通常APIを介して行う。
Web API[編集]
Web APIは、HTTPプロトコルを利用して機能を提供できるようにしたもので、HTTP通信さえ可能な環境であれば、プログラミング言語を問わず異なるコンピューター間で利用できるところに優位性がある。これは分散技術にも通じる。
特にデータフォーマットにJSONを利用する場合は、Webブラウザーからも呼び出すことができるなど、利便性が非常に高い。
しかし当然ではあるが、HTTP通信を行うのでそのコストは無視できない。
互換性[編集]
コンポーネントは、バージョンアップするに従いプログラミングの内部構造が変わることがある。それに伴い関数・メソッドの仕様が変わるが、APIが変更になった場合、利用するソフトウェアの呼び出しコードも書き換えが必要になる。
そのため、APIは最小限で変化しにくい仕様のものを提供し、それによってコンポーネントとの結合度を低くすることが望ましい。
バージョンアップした際にAPIも提供する機能も変わらずに使えることを、互換性がある、という。API側の拡張が必要になった場合は、公開しているインターフェイスは修正せず新しく作る[3]ことで、互換性を維持できる。