NAME HTTP::Router - Yet Another Path Router for HTTP SYNOPSIS use HTTP::Router; my $router = HTTP::Router->new; my $route = HTTP::Router::Route->new( path => '/', conditions => { method => 'GET' }, params => { controller => 'Root', action => 'index' }, ); $router->add_route($route); # or $router->add_route('/' => ( conditions => { method => 'GET' }, params => { controller => 'Root', action => 'index' }, )); # GET / my $match = $router->match($req); $match->params; # { controller => 'Root', action => 'index' } $match->uri_for; # '/' DESCRIPTION HTTP::Router provides a way of constructing routing tables. If you are interested in a Merb-like constructing way, please check HTTP::Router::Declare. METHODS new Returns a HTTP::Router object. add_route($route) add_route($path, %args) Adds a new route. You can specify HTTP::Router::Route object, or path string and options pair. example: my $route = HTTP::Router::Route->new( path => '/', conditions => { method => 'GET' }, params => { controller => 'Root', action => 'index' }, ); $router->add_route($route); equals to: $router->add_route('/' => ( conditions => { method => 'GET' }, params => { controller => 'Root', action => 'index' }, )); routes Returns registered routes. reset Clears registered routes. freeze Creates inline matcher using registered routes. thaw Clears inline matcher. is_frozen Returns true if inline matcher is defined. match($req) Returns a HTTP::Router::Match object that matches a given request. If no routes match, it returns "undef". route_for($req) Returns a HTTP::Router::Route object that matches a given request. If no routes match, it returns "undef". AUTHOR NAKAGAWA Masaki Takatoshi Kitano LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO HTTP::Router::Declare, HTTP::Router::Route, HTTP::Router::Match, MojoX::Routes, , HTTPx::Dispatcher, Path::Router, Path::Dispatcher