PerlでSOAPがあんまり普及していない(?)理由
なんというか、Perlのいいところでもあり、悪いところでもあると思うんだけど、やり方が何通りもあって定番のお手本がないってことがあるんだと思う。いくつかSOAPでWebAPIを叩くサンプルを見たけど、どれもこれもやり方が違う。
- XMLPRC::Liteを使う方法(Perlクックブック)
- SOAP::Liteを使う方法(Perlクックブック、個人日記)←でも使うメソッドからして違っている
- LWP::SimpleとXML::Simpleを使う方法(Yahoo!デベロッパーネットワーク)
そして、それぞれ、WSDLのどこを読み取って、コードのどこにフィードバックする必要があるのかがわからない。SOAPを使うからにはWSDLはどうしても通らないといけない道だと思うんだけど、こことの関連をフォローしている記述がみつけられないでいる。世の中の本ではJavaでWebAPIを叩くサンプルと、PHPでWebAPIを叩くサンプルが多いみたいなんだけど、PerlのSOAP::Liteってライブラリでは、どこがどう対応するのかがわからない・・・
うーん、あれだこれだと試行錯誤するしかないのかな? でも試行錯誤して得られるものって「とりあえず動く」か「この場合だけ動く」ってものになりがちじゃないかよ。うーん。おとつい書いたソースをSOAP::Liteで書き直したいんだが、うーん、今日だけ努力して、だめならタイムアウトしてRESTに逃げるか;;
お手本みっけ!
2003/07/27 自宅(2) 『AWS: 「¥」バグが直り、SOAP アクセス可能に』
しかし、このあとこんな記事を発見してしまう。
REST vs. SOAP at Amazon 日本語訳
私は最近、syndic8 を作り、現在は Amazon でチーフ・ウェブサービス・エバンジェリストを務める Jeff Barr と話をした。彼は面白い話を教えてくれた。Amazon はウェブサービスに SOAP と REST インタフェースの両方を採用しているが、その利用の85%は REST インタフェースだというのだ。SOAP スタックに関して企業が熱心に行っている誇大宣伝にもかかわらず、これは REST のよりシンプルなアプローチを開発者が好んでいることの動かしがたい証拠である(SOAP を使ったほうがよい複雑なアプリケーションがたくさんあることは知っているが、私はいつだって参入障壁が低く、草の根で採用される技術を好んできたし、シンプルな XML over HTTP のアプローチが勝利をもらたす組み合わせであると思う)。
そして署名が2003/04だ。もう4年も前の時点で勝負は決しているのに、SOAPに固執する理由はあるのか・・・ まあ、技術的に「できるぜ!」という状態なんだけど、「でもシンプルなのがいいよね!」という選択の問題にしておきたい、ということか>俺
・・・んー、まず↑のお手本だけども、多分APIは今も機能するんだろうけど、developer tokenが今(2007/07)はもらえないらしい。代わりにAccess Key IDとSecret Access Keyがもらえた。こっちは新しいバージョンのWebAPIを叩く時に使うみたい。最新版のAPIのWSDLみたらちゃんとらしい項目がある。ふむ。まあ、上のお手本は、もうそのままは機能しないってことだな。
で、試したいのはヤフオクなんだけど、こっちがわからない。デベロッパー登録してアプリケーションID(appid)ってのを登録して、APIコールするときはこれをつけてね!ってなってる。RESTのサンプルなんかでは、URLとしてそのパラメータを組み立ててるんだよね。でもWSDLの記述を見てもappidらしきものがどこにもない。これはひょっとしてSOAPで叩く分には、appidいらないのか? なんだよこの非対称は。
ひょっとして、SOAPで叩きに来る人があまりにもいないから、無制限OKってこと?w
※SOAPの場合、アプリケーションIDは不要です。
WSDLのURLが掲げられたページに書いてあったよ(´・ω・`)