APIとは
「API」という用語が登場するのを見たことがあるでしょう。オペレーティングシステム、Webブラウザ、およびアプリのアップデートによって、開発者向けの新しいAPIが発表されることがよくあります。しかし、APIとは何ですか?
アプリケーションプログラミングインタフェース
APIという用語は頭字語で、「Application Programming Interface」を表します。
レストランのメニューのようなAPIを考えてください。メニューには、注文可能な料理の一覧と各料理の説明が表示されます。あなたが欲しいメニュー項目を指定するとき、レストランのキッチンは仕事をして、そしてあなたにいくつかの完成した料理を提供します。あなたはレストランがその食べ物をどのように準備するのか正確には知りません、そしてあなたは本当にする必要はありません.
同様に、APIには、開発者が使用できる一連の操作と、実行内容の説明がリストされています。開発者は、たとえばオペレーティングシステムが「名前を付けて保存」ダイアログボックスを作成して表示する方法など、必ずしも知っている必要はありません。彼らはそれが彼らのアプリで使用可能であることを知る必要があります.
開発者は結果を得るために独自のデータをAPIに提供しなければならない可能性があるので、これは完璧な比喩ではありません。.
しかし、それは概して正確です。 APIを使用すると、開発者はプラットフォームの実装を利用して手の込んだ作業を行うことで時間を節約できます。これにより、開発者が作成する必要があるコードの量を減らすことができ、また同じプラットフォームのアプリ間でより一貫性のあるものにすることができます。 APIはハードウェアおよびソフトウェアリソースへのアクセスを制御できます.
APIによって開発者の生活が楽になる
iPhone用のアプリを開発したいとしましょう。 AppleのiOSオペレーティングシステムは、他のすべてのオペレーティングシステムと同様に、これを簡単にするための多数のAPIを提供しています。.
たとえば、1つ以上のWebページを表示するためにWebブラウザを埋め込む場合は、アプリケーションのためだけに自分のWebブラウザを最初からプログラムする必要はありません。アプリケーションにWebKit(Safari)ブラウザオブジェクトを埋め込むには、WKWebView APIを使用します。.
iPhoneのカメラから写真やビデオをキャプチャする場合は、独自のカメラインターフェイスを作成する必要はありません。あなたはあなたのアプリにiPhoneの内蔵カメラを埋め込むためにcamera APIを使います。これを容易にするAPIが存在しない場合、アプリ開発者は独自のカメラソフトウェアを作成し、カメラハードウェアの入力を解釈する必要があります。しかし、Appleのオペレーティングシステム開発者は、このようなすべての努力を払ってきたので、開発者は単にカメラAPIを使ってカメラを埋め込んでから、自分のアプリを作成することができます。そして、AppleがカメラAPIを改良するとき、それに依存するすべてのアプリは自動的にその改良を利用するでしょう.
これはすべてのプラットフォームに当てはまります。たとえば、Windows上にダイアログボックスを作成しますか?そのためのAPIがあります。 Androidで指紋認証をサポートしたいですか?そのためのAPIもありますので、すべてのAndroidメーカーの指紋センサーをテストする必要はありません。開発者は何度も何度もホイールを作り直す必要はありません.
APIによるリソースへのアクセス制御
APIは、アプリケーションが必ずしも使用を許可されていない可能性があるハードウェアデバイスおよびソフトウェア機能へのアクセスを制御するためにも使用されます。だからこそ、APIはセキュリティにおいて大きな役割を果たすのです。.
たとえば、Webサイトにアクセスしたときに、Webサイトから自分の正確な位置を確認するようにというメッセージがブラウザに表示された場合、そのWebサイトはWebブラウザで位置情報APIを使用しようとします。 Webブラウザは、Web開発者があなたの位置にアクセスするのを容易にするためにこのようなAPIを公開します - 彼らは単に「あなたはどこにいますか?」と尋ねることができます。.
ただし、ブラウザは、アクセスを制御することが可能であるため、APIを介してこの情報を公開しています。ウェブサイトがあなたの正確な物理的な場所へのアクセスを望んでいるとき、彼らがそれを得ることができる唯一の方法はlocation APIを経由することです。そして、Webサイトがそれを使用しようとすると、あなた(ユーザー)はこの要求を許可するか拒否するかを選択できます。 GPSセンサーなどのハードウェアリソースにアクセスする唯一の方法はAPIを使用することであるため、ブラウザはハードウェアへのアクセスを制御し、アプリが実行できることを制限できます。.
これと同じ原則が、iOSやAndroidなどの最近のモバイルオペレーティングシステムでも使用されています。モバイルアプリケーションには、APIへのアクセスを制御することで強制できる権限があります。たとえば、開発者がカメラAPIを介してカメラにアクセスしようとすると、許可要求を拒否することができ、アプリにはデバイスのカメラにアクセスする方法がありません。.
Windows、Mac、およびLinuxのようにアクセス権を使用するファイルシステムは、ファイルシステムAPIによってそれらのアクセス権が適用されます。一般的なアプリケーションは、raw物理ハードディスクに直接アクセスすることはできません。代わりに、アプリはAPIを介してファイルにアクセスする必要があります.
APIはサービス間の通信に使用されます
APIは他のあらゆる種類の理由でも使用されます。たとえば、WebサイトにGoogleマップオブジェクトが埋め込まれているのをこれまでに見たことがある場合、そのWebサイトはGoogle Maps APIを使用してそのマップを埋め込みます。 GoogleはこのようなAPIをWeb開発者に公開し、Web開発者はそのAPIを使用して自分のWebサイトで複雑なオブジェクトを発見することができます。このようなAPIが存在しない場合は、開発者は、インタラクティブな地図をWebサイトに配置するためだけに、独自の地図を作成し、独自の地図データを提供する必要があります。.
そしてそれはAPIなので、Googleはサードパーティのウェブサイト上のGoogleマップへのアクセスを制御することができ、Googleマップウェブサイトを示すフレームを乱雑に埋め込むのではなく、一貫した方法でそれを使用することを保証します。.
これは、さまざまなオンラインサービスに適用されます。グーグル翻訳からテキスト翻訳を要求するための、あるいはウェブサイト上のツイッターからFacebookのコメントやツイートを埋め込むためのAPIがあります。.
OAuth規格では、他のサービスを使用してWebサイトにサインインできるようにするための多数のAPIも定義されています。 。 APIは、開発者がサービスと通信する方法、および開発者が受け取ることを期待する出力の種類を定義する標準規約です。.
あなたがこれを経験したならば、あなたはAPIが何であるかのより良い考えを持つでしょう。究極的には、あなたが開発者でない限り、あなたは本当にAPIが何であるかを知る必要はありません。しかし、ソフトウェアプラットフォームやサービスにさまざまなハードウェアやサービス用の新しいAPIが追加されているのを見た場合、開発者はそのような機能を利用するほうが簡単です。.
画像クレジット:patpitchaya / Shutterstock.com.