Webアプリケーションが見事にコードリファレンス一つに抽象化されているPSGIでは、あるアプリケーションに前処理・後処理を追加して、動作をちょっと変更するMiddlewareという仕組みがあって、それで色々と面白いことができそうなので、試しにくだらないものを作ってみました。
今回作ったのは、実用性皆無ですが、後処理を追加することで、出力をすべて大文字にしてくれるMiddlewareです。
必要なモジュール: Plack, Twiggy
使い方: plackup -s Twiggy app.psgi で動かして、http://localhost:5000/streamなどを見てみる。
hirataraさんの記事 PSGI 1.03のMiddlewareを書いてみるを参考にしながら作ってみたのですが、Plack::Component::response_cbの定義をよく見ると、body_filterとして返すコードリファレンスの内容は、return undefをすると$res->[2]に無駄なundefが入るので、return ()の方を使うこのコードの方がよいと思います。
0 コメント:
コメントを投稿