新しいblogに移行しました

新ブログ "All Yout Bugs Are Belong To Ass" に移行しました!

2010-10-05

[Perl]PlackのSyntax Sugar "Flea"を試してみた

最近ご無沙汰だったPlackに触るべく、何かネタがないかなー、とCPANをフラフラと彷徨っていたところ、Fleaというモジュールが目につきました。
面白そうだったので、さっそく試してみましたという記録です。
あくまで、Synopsisをなぞった程度なんですけどもねー。

※Flea = "ノミ"の意だそうで、podみててもノミを思わせるジョークがちらほらと見受けられます。

まず、トップに表示するhtmlをこさえます。

index.html

<html>
<head>
  <title>Flea ノミのように小さなPlack Syntax Sugar</title>
</head>
<body>
  <h1>Flea ノミのように小さなPlack Syntax Sugar</h1>
  <p>工事中</p>
</body>
</html>

で、psgiファイルを用意します。

flea.psgi

use Flea;
my $app = bite {
    get '^/$' {
        file 'index.html';
    }
    get '^/api$' {
        json {
            name => 'Flea',
            ja => 'ノミ',
        };
    }
};
通常のpsgiではちょっとあり得ないほどシンプルになってます。特にルーティングまわり。
podによると、このあたりはDancer譲りのようです。Dancer使ったことないので、よくわかってませんけど。

手元の環境は上位にロードバランサーがいるので、とりあえずそこからtcp4000番にバランシングするように予め設定しておきました。
で、起動ですね。今回はServer::Starter + Starmanで起こしてみました。(最速セットアップ案内 Catalyst on Starmanを参照。)
[root@nethard myflea]# start_server --port 4000 -- starman --worker 8 ./flea.psgi 
start_server (pid:901) starting now...
starting new worker 902
Setting gid to "0 0 10 6 4 3 2 1 0"

ではブラウザでアクセスしてみます。
ちなみに、/psgi以下に今回のアプリを組み込みました。
まず、'/psgi/'にアクセス。


おお!当たり前ですが、うまくできてしまいました!!
さて次は、'/psgi/api'にアクセス。JSONが出ればOKです。


こちらもうまくいきました!
小さなサービスを作るときの手段としては、悪くないかも。

0 件のコメント: