Plack::App::HTTP::Router - A Plack component for RESTful dispatching

RESTfulなdispatchをするPlack Appを作ってみた。
http://github.com/dann/p5-plack-app-http-router

使い方

use Plack::Builder;
use Plack::App::HTTP::Router;
use HTTP::Router::Declare;
use lib 'examples/lib';

my $router = router {
      match '/' => to { controller => 'Root', action => 'index' };
      resources 'Weather';
      match '/{controller}/{action}/{id}.{format}';
      match '/{controller}/{action}/{id}';
};
my $app = Plack::App::HTTP::Router->new({ router => $router} )->to_app;

builder {
    enable "Plack::Middleware::MethodOverride";
    $app;
};

controller, actionにmappingする時点でpsgiのhandlerをmappingしにくいので、かなり微妙な感じはするのだけれど。

WAFのdispatchする部分は、Appとして実装するのがいいだろうなぁと思ってるので、そのサンプル実装くらいには使えるんじゃないかなぁと。