目次

2008年11月14日金曜日

とてもやさしいAPI (自己流なので、違っているかも)~orbAPIの場合

夜中におなかが痛くて目が覚めてしまいました。なので、ソースコードをじっくり、一行ずつ読んでいました。すると、なんだか分からなかったOrbのAPIがなんとなく分かって来たような気がしました。おそらくDOM形式のAPI全般で、このように使用するのだと思います。Flickrとかもね。

OrbのAPIはURLを入力すると、XMLでデータがかえってくるものだと前に書きました。
例えばログインするときは

https://api.orb.com/orb/xml/session.login?apiKey=ohla9ocejeen&l=john&password=foo&speed=250

と入力すると

<orbSession>
<orbSessionId>...</orbSessionId>
<maxInactiveInterval>...</maxInactiveInterval>
<orbVersion>...</orbVersion>
</orbSession>

こんな結果が帰ってきました。
後は、この結果から、欲しい情報をゲットすればよいのです。 JavaScriptの場合、
dom.getElementsByTagName('orbSessionId')[0].firstChild.nodeValue;

こんな感じでとってきてます。
あとは

var sessionID = dom.getElementsByTagName('orbSessionId')[0].firstChild.nodeValue;

こんなふうにかけば、html上で表示するもよし、新しくAPIを引っ張ってくるためのURLに代入するもよし。

手順を整理してみると
1,APIを用いるためのURLを作る
2,タグから情報を引き出す
3,またAPIを用いるためのURLを作る(もしくは別なメソッドに活かす)
行うことはこれだけなんです。なんかカンタンなのかもって思えませんか?もちろん、URLを作るためにプログラミング言語が必要なんですが、どんな言語だって作れればいいのです。JavaScriptでもRubyでもPythonでもなんでも。

さて、補足。
Q:DOMってなんだ?

dom.getElementsByTagNameの後半は分かるとしても、domってなんなんでしょう。

A:XMLパーサが提供するアクセスの手段です。

DOMが知りたければ、XMLパーサをしらねばなりません。
XMLパーサとは XML文書を、アプリケーションソフトが利用しやすい形に変換するソフトウェアだそうです。
DOM(Document Object Model)とはW3C で勧告されている仕様の一つで、様々なソフトウェアがXML文書を読み取ったり、表示形式を変更して表示する事などを可能にする、XMLパーサのAPIなのです。
DOMはXML文書中のデータをXMLパーサが読み込むと、データをツリー構造としてメモリ上に展開します。最初に見た「結果」を表示していたのはDOMだったのです。

とまあ、googleのある時代に生まれて本当によかった3時間を過ごしました。

0 件のコメント: