読者です 読者をやめる 読者になる 読者になる

TinyurlなどのURLを復元するJSON(P) API

WebAPI Perl

最近Perlの勉強を始め、入門書を読んだりしてPerlのソースがそこそこ読めるようになってきました。
で、そろそろ実際に書いてみますかということで、以前からほしかったAPIに挑戦してみました。

reurl API

Tinyurlなどで圧縮されたURLを復元*1してJSON(callbackがあればJSONP)を返すAPIです。
圧縮されていないと思われるURL(サービスのドメインで判断)は基本的にそのまま返します空文字列を返します

TODO
  • 圧縮サービスの正規表現が直書きなのがイマイチ。wedataとかで管理して、cronでyamlにして、って感じにしたい。
  • 圧縮サービスが突然閉鎖とかしたときも考えて、DBにurlを貯めていこうかなとか。
APIの利用について
  • 利用にあたって特に制限はありませんが、負荷が高いと判断した場合はサービスを停止する場合もあります。その点はご了承ください。

以下、現時点のソース。gistに置いた。HTTP::Liteは勝手に転送しないので、この用途にちょうど良かったみたい。
http://gist.github.com/65204
http://mayokara.info/deadspace/#d20090216 の #15 のツッコミより、$http->method('HEAD');を入れた。ありがとうございます。

参考にしたもの:
http://coderepos.org/share/browser/websites/ustreamer

*1:各サービスにRequestをなげ、ヘッダーからLocationを取得する(その先には転送しない)