IPSJ情報処理カタログ #ジョーショリ

API

えーぴーあいApplication Programming Interface

概 要

APIはアプリケーション同士でデータをやり取りするための仕組み。コンピュータ内部ではアプリケーションからOSの機能を呼び出すための仕組みをAPIと呼んでいる。とくにOSの機能を呼び出すAPIは、システムコールとも呼ばれている。

解 説

OSはハードウェアとアプリケーションの橋渡し的な役割をもっていて、アプリケーションはOSの機能を呼び出し、OSが受領してハードウェアを動かしています。このアプリケーションとOSをつなぐ仕組みをAPIと言います。

この仕組みによってハードウェアは抽象化されていて、OSというワンクッションを挟むことで、ハードウェア構成の違いをOSが吸収、アプリケーション側は同じAPIを使えば、常に同じ結果が得られるようになっています。

APIはOSを操作する手段としてはもっとも低レベルなもので、APIを直接呼び出す場合は開発者自身が細かいところまで気を配ってプログラミングする必要があります。その分、自由度の高いアプリケーション開発が可能です。

一方でAPIのプログラミングは、煩雑で難しいことが多いのも事実で、同じ結果を得るのであれば、APIを使いやすくまとめたライブラリやフレームワークを用いる開発が、簡単で一般的です。

実現できること

  • ・OSの機能を隅々まで活用できます。
  • ・プログラムがどのような処理で実行されているか学習できます。
  • ・ライブラリやフレームワークでは行えない処理もAPIを直接操作すれば解決する可能性があります。
  • ・処理速度が求められる場合、APIの利用で解決する可能性があります。
  • ・ライブラリ、フレームワークで開発中のプログラムにAPI直接操作を組み込むこともできます。

将来の展開

現在はさまざまなプログラミング言語が活用され、OSに関係なく実行できるほど抽象化されたプログラミング言語も高い人気を集めています。そのようなプログラミング言語におけるAPIは標準ライブラリの総称やWeb APIのことを指していて、システムコールという意味でのAPIとは違うものです。

現在はシステムコールをまったく触ったことのない開発者も普通になってきており、この流れは今後も変わらないと考えられます。

補足

Webサービス同士の連携を行う仕組みをWeb APIと言います。こちらも単純にAPIと呼ばれることが多く、特にPHPやPythonといったWeb開発向けプログラミング言語の世界でAPIと言えばWeb APIを指しています。

PAGE TOP