APIって言葉を良く聞きますが、よくわからなくて困っている人はいませんか?私もその一人です。APIは至るところで出てきます。アプリ開発などをやっていれば一度は「…APIを利用しましょう。キーを取得…」という言葉を聞いたことがあるのではないでしょうか?わかっている人でもAPIって何ですか?と聞かれてもきちんと説明するのは難しいのではないでしょうか?
APIとは?
API(Application Program interface)の略です。インターフェースとは何かと何かが交わる部分・装置(人と機械、デジカメとPC等)などのことです。
つまりAPIとは、アプリを利用する接点、アプリケーション同士が互いにやりとりする接点です。アプリケーションは基本的に作業、データはそのアプリケーションだけで利用されます。
例えば、ツイッターは短文や画像等を投稿するSNSとして利用していると思います。
また、googleカレンダーは予定を登録するのに利用しています。これらのアプリケーションはそれぞれ独立した別の機能を持つアプリとして利用されています。しかし、Googleカレンダーにある予定を前日になったらツイッターてつぶやくようにしたいとか、ラインのグループに投稿するなどと、アプリケーション同士を連携したいようなときに「API」が使われます。APIはGoogleカレンダーの予定データを外部のアプリケーション(ラインやツイッター)で利用するために用意されたものです。
なぜAPIが重要視されているか?
アプリケーションはこれまで単独で利用されることが多かったですが、それぞれのアプリケーションにあるデータや機能をそのアプリだけで使うよりも、他のアプリケーションと連携できたら「便利」とか「新しいアプリやサービスの開発につながる」と考えられるようになっています。
今後はあらゆる物がインターネットにつながり、いつでもどこでも高速の無線通信が利用可能に、大容量の記憶媒体と高速演算に誰でもアクセス可能になってきます。こうした時代背景の中で、スマホと車、人と腕時計などあらゆるデバイス、アプリケーションが互いに連携化はますます進んでいくと考えられます。このアプリケーション同士の連携に活躍するのがAPIです。
地図に現在位置を表示するのに特化したアプリ、予定を登録するのに特化したアプリ、短文投稿に特化したアプリなど、様々なスペシャリスト的なアプリを相互に利用できるようにまとめるゼネラリスト的な立場がAPIともいえるかもしれません。
APIを提供するメリットは?
他の会社のアプリケーションに利用されてしまうようなAPIを提供するメリットがあるのか?と思われるかもしれませんが、API提供側にもメリットはあるようです。
APIを提供することによって、提供側のアプリケーションの利用シーンの拡大に役立つからです。先程のgoogleカレンダーの例もありますが、カレンダーの予約をライングループのみんなに定期的に知らせる使い方など元々の予定登録の機能を超えた使い方をユーザーが利用可能になります。こうした使い方ができるのがgoogleカレンダーしかなければ、googleカレンダーを利用するユーザーが増えるかもしれません。
それに、googleカレンダー側がライン連携と同じような機能を提供するにはカレンダーだけでなく、ラインの機能も加える必要があるので開発規模が大きくなってしまいます。
また、大規模なアプリケーション開発ができないような会社でもgoogleのような大きな会社のAPIを活用して組み合わせることによって、少コストでアプリケーション開発が可能になります。こうしたビジネスユースの場合にはAPI提供側が有料で提供することで利益をあげることもできます。
WebAPIとは
APIにもたくさん種類があります。いろんなOS、プログラミング言語などで記述されたアプリでうまく連携させるのは大変です。「WebAPI」はサファリやクロームなどのウェブブラウザでも利用できるような仕様のAPIです。ブラウザはURL(http://xxxx.com)などを打ち込むとその文字列をサーバーに送って、そのURLに当たるページをこちらに送り返してくれることでそのURLのページを表示できます。シンプルなwebAPIはURLを打ち込んでアプリケーション同士を連携できます。簡単ですね。
そんなWebAPIを利用した例を紹介します。
Chemical Identifer resolverはURLで化合物名と欲しい情報(パラメーター)を一定の規則に従って生成、リクエストすることでNIHにあるデータベースからその化合物に当たるデータを表示します。これも一種のWebAPIといえます。
QRコードを生成するWeb APIもあります。記事は下のリンクから