\r\n\r\n

apiとは何ですか?

api」という言葉が出てくるのを見たことがあるかもしれません。オペレーティングシステムやウェブブラウザ、アプリケーションのアップデートにより、開発者向けに新しいapiがリリースされることがよくありますが、apiとは何でしょうか?

API」という言葉が出てくるのを見たことがあるかもしれません。OSやWebブラウザ、アプリケーションのアップデートで、開発者向けに新しいAPIが公開されることがよくありますが、APIとは何でしょうか?

アプリケーションプログラミングインタフェース

APIとは、"Application Programming Interface "の頭文字をとったものである。

APIはレストランのメニューのようなものだと考えてください。メニューには、注文できる料理のリストと、それぞれの料理の説明が記載されています。欲しいメニューを指定すると、レストランの厨房から完成した料理がいくつも提供される。お店がどのように調理しているかは分からないし、実際その必要もない。

同様に、APIには、開発者が使用できる一連のアクションが、何を行っているかの説明とともにリストアップされています。開発者は、「名前を付けて保存」ダイアログボックスがどのように構成され、オペレーティングシステムによって表示されるかを必ずしも知る必要はありません。自分のアプリケーションで使えるということがわかればいいのです。

これは完全な例えではありませんが、開発者は自分のデータをAPIに提供しなければ結果を得られないかもしれません。ですから、むしろ高級レストランのように、自分の食材を提供して、それをキッチンが使ってくれるようなものでしょう。

しかし、それはおおむね正確です。apiを使えば、開発者はプラットフォームの実装を活用して基本的な作業を行うことができ、時間を節約することができます。これにより、開発者が作成しなければならないコードの量を減らし、同じプラットフォーム上のアプリケーションの一貫性を高めることができます。

開発者の負担を軽減するAPI

例えば、iPhone用のアプリケーションを開発するとします。AppleのiOSオペレーティングシステムは、他のオペレーティングシステムと同様に、多くのAPIを提供しています。

例えば、1つまたは複数のウェブページを表示するためにウェブブラウザを組み込みたい場合、アプリケーションのためだけに一から独自のウェブブラウザを記述する必要はありません。WKWebView APIを使用すると、WebKit(Safari)ブラウザオブジェクトをアプリケーションに埋め込むことができます。

iPhoneのカメラで写真やビデオを撮りたい場合、自分でカメラのインターフェースを書く必要はありません。cameraapiを使用すると、iPhoneの内蔵カメラをアプリケーションに組み込むことができます。もしこれを簡単にするAPIがなければ、アプリケーション開発者は自分でカメラソフトを作り、カメラハードウェアの入力を解釈しなければなりません。しかし、このような苦労はAppleのOS開発者がすべてやってくれているので、開発者はcameraapiを使ってカメラを組み込むだけで、アプリを作り始めることができるのです。また、AppleがカメラAPIを改良すると、それに依存するすべてのアプリケーションが自動的にこの改良を利用するようになります。

これは、すべてのプラットフォームに適用されます。例えば、Windowsでダイアログを作りたい?そのためのAPIがあります。Androidで指紋認証に対応したいのですが?そのためのAPIも用意されているので、Android**ベンダーの指紋センサーをいちいちテストする必要はないのです。開発者は何度も車輪を再発明する必要はないのです。

APIで制御されたリソースへのアクセス

また、アプリケーションが必ずしもアクセスできないようなハードウェアデバイスやソフトウェア機能へのアクセスを制御するためにもapiは使用されます。そのため、セキュリティの面ではapiが重要な役割を果たすことが多いのです。

関連:ウェブサイトから位置情報を照会されないようにする方法

例えば、あなたがウェブサイトを訪れたとき、ブラウザにあなたの正確な位置情報を求めるメッセージが表示されたことがあるとしたら、そのサイトはあなたのブラウザのジオロケーション API を使おうとしているのです。"どこにいるんだ?"?"と表示され、GPSや近くのWi-Fiネットワークにアクセスすることで、ブラウザが物理的な位置を特定することができます。

しかし、ブラウザはAPIを通じて、この情報へのアクセスを制御できるため、この情報も公開されます。ウェブサイトがあなたの正確な物理的位置にアクセスしたいとき、彼らがそれを得ることができる唯一の方法はlocationapi.であり、ウェブサイトがそれを使用しようとするとき、あなたはリクエストを許可するか拒否するかを選択することができます。GPSセンサーなどのハードウェアリソースにアクセスする方法はAPIのみであるため、ブラウザがハードウェアへのアクセスを制御し、アプリケーションの機能を制限することが可能です。

この原則は、iOSやAndroidなどの最新のモバイルOSにも適用され、モバイルアプリケーションは、apiへのアクセスを制御することでパーミッションが強制されます。例えば、開発者がカメラAPI経由でカメラにアクセスしようとした場合、許可要求を拒否すれば、そのアプリはデバイスのカメラにアクセスできなくなります。

Windows、Mac、Linuxのようなパーミッションを使用するファイルシステムは、ファイルシステムAPIによってパーミッションが強制されます。一般的なアプリケーションは、生の物理ドライブに直接アクセスすることはできません。その代わり、アプリケーションはAPIを通じてファイルにアクセスする必要があります。

サービス間通信のためのAPI

その他にも、apiが使われる理由は様々です。例えば、Google MapsオブジェクトがWebサイトに埋め込まれているのを見かけたら、そのWebサイトはGoogle Maps APIを使って地図を埋め込んでいます。 GoogleはこのようなAPIをWeb開発者に公開し、開発者はそれを使って自分のWebサイトに複雑なオブジェクトを公開することができます。そのようなAPIが存在しない場合、サイト上に小さなインタラクティブマップを設置するために、開発者は自分で地図を作成し、地図データを提供する必要があるかもしれません。

また、APIであるため、Googleは、Google Mapsサイトを表示するフレームワークを乱立させるのではなく、サードパーティサイトによるGoogle Mapsへのアクセスを制御し、一貫した方法で使用できるようにすることができるのです。

これは、さまざまなオンラインサービスに当てはまります。googletranslateにテキスト翻訳を依頼したり、Facebookのコメントやツイートをウェブサイトに埋め込むことができるapiがあります。

関連:OAuthとは何か、Facebook、Twitter、Googleのログインボタンの仕組みは?

例えば、FacebookやGoogle、Twitterのアカウントを使って新しいWebサイトにサインインする場合、そのWebサイトのために新しいユーザーアカウントを作成する必要はありません。受信した出力の種類を指定します。


このステップを終えた方は、APIとは何かについて、より深く理解されたことでしょう。最終的には、開発者でない限り、APIが何であるかを知る必要はない。しかし、ソフトウェアプラットフォームやサービスが、様々なハードウェアやサービスに対して新しいAPIを追加するのを見れば、開発者がこれらの機能を利用することが容易になるはずである。

写真提供:patpitchaya/Shutterstock.com website.

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ