Yahoo!PipesとJSONPとXML Webサービス
僕は何年か前、Webサービス(XML Webサービス)に興味があって、実は今でも何種類かのWebサービス(SOAP1.1ベース)がオブジェクト倶楽部の「Webサービス同好会」というサイトの下で動いている。*1
その中でも、「世界の名言サービス」は気に入っていて、何百もの世界の名言を取得したり、逆に自由に登録できたりする。
ただ、今の世の中SOAPなんて見向きもされなくなってもったいないなぁ、と感じていたところ、Yahoo!Pipesという便利なサービスが生まれ、JSONPというお手軽な仕組みがメジャーになってきた。
そこで久しぶりに技術の勉強がてら以下のような仕組みを考えてみた。
- ランダムに名言を返すシンプルなWeb APIを用意(XMLを返すSOAPクライアントとして実現。要はSOAPをもっとシンプルなXMLに変換する)
- Yahoo!Pipesで、XMLをJSONPに変換してもらう
- JSONPを呼び出すWebページを作る。callbackメソッド名は好きなものを指定できる。例えば、callback というメソッドでよければ、
<script> function callback(obj) { var aws = obj.value.items[0] document.write(aws.word + " by " + aws.author) } </script> <script src="http://pipes.yahoo.com/pipes/pipe.run?_id=Ukbrpo0K3BGdEO20jUnRlg&_render=json&_callback=callback" /> </script>
これで簡単に世界の名言をWebに貼り付けられる。(ちょっと重いけど。。)