2006-03-02(木) [長年日記]
■ おれだったらフォト蔵APIをこうする(2)
昨日のエントリに対して、開発者の方からツッコミをいただいた。
Flickrにしろdel.icio.usにしろ本来の意味でのRESTになってないAPIが多く存在するのが現実です。
これはagree。とは言ったもののFlickrやdel.icio.usのAPIは軽く眺めたことがある程度なので、コメントは控える。AmazonやGoogleのような先駆的なベンダーがGETだけで済む取得系APIを公開して「これがRESTでござい」とやっちゃったのがいけなかったんじゃないかと、個人的には考えているのだが。
PUTやDELETEは開発者にとってもあまりなじみのない単語であり、GETやPOSTの方が分かりやすく、IEなどのwebブラウザだけでテストが行える利点があり、より多くの開発者を獲得できる可能性があります。
これもagree。たとえばRubyのNet::HTTPには、DELETEに対応したクラスがない。もしRESTfulなサービスがあったら、Deleteクラスを自作しなくてはならないだろう……と思ったけど、RAAにはRESTを実装したライブラリがあるみたいだなぁ。こんど使ってみよ。
しかしだからと言って、フォト蔵もRESTを名乗っていいということにはならないのではないか。標準化団体によって規約化されているわけではないものの、RESTはきちんと定義された概念だ。正しくないとわかっているのに、なぜRESTを名乗るのか。ここは開発者の良心を期待したいところである。
Web上でAPIを公開するのに、SOAPやREST、XML-RPCでなければならないという法はない。開発者が使いやすいと信じているなら、RESTなど名乗らずに独自方式であることを明記すればいいではないか。わざわざRESTに対する誤解を拡大させることはないと思うのだが、いかがだろうか。フォト蔵APIの概要から「フォト蔵APIは全てRESTで提供されています。」の一文を削除しても、何の問題もなく意味が通じると思う。
それはさておき、ほとんどのAPIはちゃんと呼べたんだけど、どうしてもphoto_addで写真が追加できない。エラーは「REGISTERATION_FAILURE: Failed to register 」なので原因もわからんし。photoパラメタの指定方法がいけないような気がするんだけど、バイナリをそのまま与えたらあかんのだろうか(もちろんURL encodeしてるけど)。