APIって結局何なの?初心者向けに徹底解説します!

   

Code部

このエントリでは、現代のITを支える重要な技術である「WebAPI」をご紹介します。

APIとは

「Web」はともかくとして、「API」とはなんのことでしょうか。

これはApplication Programming Interfaceの略称で、「プログラムからソフトウェアを操作するためのインターフェイス」のことです。

 

インターフェイスとは

では「インターフェイス」とはなんでしょうか。英語の意味としては「境界面」とか「共通領域」という意味があり、コンピュータの用語としては広義には「何かと何かをつなぐもの」という程度の意味があります。例えばUSBもインターフェイスの1種です。コンピュータと周辺機器をつなぐものですから。

 

interface

 

APIという言葉を用いる文脈での「インターフェイス」は「ソフトウェアとプログラムをつなぐもの」と言えます。

api

 

 

APIの利点

APIには様々な利点があります。

 

 

複雑な手順の隠蔽

例えば、デスクトップにウィンドウを表示するプログラムを考えてみます。

 

これは、Kotlinという言語でウィンドウを表示するプログラムです。実行すると、Macの環境では下記のようなウィンドウが表示されます。

window-by-kotlin

OSにとって、ウィンドウを表示するというのはそれほど簡単な処理ではありません。しかしKotlinではわずか5行、意味のある行に限ればたったの3行でそれをやってのけています。

 

このように、本来複雑なプログラムを書かなければ実現できない高度な処理を簡単にするための口(=インターフェイス)を提供するのが、APIの重要な役割の1つです。

 

 

自動化

プログラムの本領は自動化です。APIはソフトウェアをプログラムで操作するためのものですので、自動化が容易になります。

 

 

WebAPIとは

本エントリの本題はWebAPIです。APIにも様々な種類があるのですが、WebAPIは近年重要性が増すばかりで、最重要なAPIの1つと言えるでしょう。

 

WebAPIとはWebサービス(=Webで提供されるソフトウェアサービス)を操作するAPIです。HTTP(S)プロトコルで提供されることが多いため、とても汎用的かつ手軽に扱えるのが最大の特徴でしょう。また呼び出し結果のフォーマットがプログラムから扱いやすいXMLやJSONになっているのも大きな特徴です。

人間相手のインターフェイスだと、HTMLやテキスト、PDFといったフォーマットが読みやすいですが、APIの場合は読むのがコンピュータですからXMLやJSONが望ましいのです。

 

 

なぜWebAPIは重要か

TogetterというWebサービスをご存知の方も多いでしょう。言うまでもなく、Twitterのつぶやきを並べてまとめるサービスで、Twitterの機能を利用した新しいサービスです。これはTwitterがWebAPIを備えているから出来ることです。

 

この例から分かるように、WebAPIを提供することでサービスの活用範囲が格段に広がります。ときにはWebAPIの提供側の意図を超えた使い方が生まれることもあります。大げさに言えば、WebAPIを通して多くの人の頭脳が集まりイノベーションが起きるのが、大きな価値なのでしょう。

 

 

WebAPIを使う

先ほどlivedoorの天気予報を使ってみましたが、あそこまで簡単に使えるWebAPIは少数派です。実際にはサービスへのアカウント登録などの作業が必要ですので、ここでは政府統計をAPIで取得できるe-Statを例にWebAPIを使うまでの手順を見てみましょう。

 

apilogo-full

 

なおe-Statは少し特殊で、WebAPIしかないWebサービスです。

 

 

利用登録

まずはサービスの利用登録です。以下のURLから登録できます。

https://www.e-stat.go.jp/api/apiuser/provisional/

 

 

アプリケーションIDの登録

次にアプリケーションIDを登録します。以下のURLから登録できます。

https://www.e-stat.go.jp/api/apiuser/appid_regist/

 

e-Statでは登録できるアプリケーションIDは3つまでです。無料で使えるので贅沢は言えませんね。

register-appid

WebAPIの呼び出し

準備は整いましたので、ブラウザでWebAPIを呼び出してみましょう。

http://api.e-stat.go.jp/rest/2.0/app/getStatsData?appId=<アプリケーションID>&statsDataId=C0020050213000&cdCat01=%23A03503

 

結果が表示されましたか?XML形式であり、ブラウザによって見た目は変わると思います。MacのSafariでは、以下のように表示されました。

webapp-result

 

 

結果の加工

WebAPIを呼び出して得た結果を加工して利用します。これが本来やりたかったことであり、腕の見せ所でしょう。

 

なお、どのサービスもこのような手順だとは限りません。WebAPIを使う場合は、そのサービスが提供するドキュメントをよく読んで、正しく使うようにして下さい。

 

 

注意事項・アクセスキーやシークレットキーの取り扱い

アクセスキー」や「シークレットキー」というものが登場するWebAPIの利用には注意が必要です。このようなキーは外部に漏れるとWebAPIを不正利用される可能性があります。場合によっては高額請求につながることも・・・(参考・『初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。』)

扱いには充分に気を付けて下さい。

 

 

最後に

クラウド時代が到来し、様々なサービスが簡単に扱えるようになった今、新しいサービスは作るものではなく組み合わせるものになりつつあります。その実現にはWebAPIの存在が大いに貢献しているのです。

もはや、WebAPIのないサービスは選ばれない時代になったと言っても過言ではなく、これを提供することはサービスにとって欠かせなくなっています。

 

ますます重要性を増すWebAPI。ぜひ有効に使って新しいサービスを生み出していただきたいと思います。

 - プログラミング