White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

APIってなんですか?

ググれ。一発目に出てくる。http://e-words.jp/w/API.html


・・これだと冷たいので補足。
APIってのは文字通り他のアプリケーションの中の機能を、自分のプログラムで使うためのインタフェース(ここでは対話方法)。

有名なのがWindowsAPIで、これはWindowsの機能を自分のプログラムで使うためのインタフェース。これが無いとウィンドウを作ったりできない*1

で、WebアプリケーションにもAPIってのがあって、これを使うと自分のプログラムから他のWebアプリケーションの機能を呼び出すことができる。

Twitterでよく「APIが死んでる」的発言を見かけたり自分でも言ったりするけど、この場合のAPIは「APIの処理を行うアプリケーション」とか「APIの処理を行うサーバ」を指してて、API自体が死ぬわけじゃない。
(細かいことかも知んないけど、一部で「ホームページ」と同じ感じで誤解されて定着そうなので書いてみた)

あと、WebアプリケーションのAPIってあくまで自分のプログラム側で使いやすい形式で受け取ってくれたり自分のIDを埋め込んだりできるくらいで、そんなもの使わなくても別の方法でデータを受け取ることができる。

その別な方法には次のようなものがある。

  1. APIじゃなくて通常のHTMLを取得して解析する(スクレイピングと言われる)
  2. ブラウザを操作して画面をキャプチャして解析する

・・まあ要は普段ユーザが行ってる操作をプログラムでも行えば言いわけ。

じゃあなんでAPIを用意しているかというと、一つの理由はデータ量とかCPU負荷を減らすため。TwitterのWebサイトにアクセスすると色んなもの(発言とか他の人のアイコンとか)が見えるけど、あれをあんな風に見せるためにはサーバ側でデータ→HTMLに変換する処理を行う。これが結構負担がかかる。よくTwitterが落ちてる一つの原因はTwitterの表示用サーバが負担に耐え切れないところにあると思う。


ふぁぼったーもAPI用意してもらえないですかね?(ぉぃ)

*1:多少語弊があるかも。ここではCreateWindow関数のことを指してるのだけど