Perl 我可以重写提供给Catalyst的URL吗?

Perl 我可以重写提供给Catalyst的URL吗?,perl,catalyst,Perl,Catalyst,我想在应用程序中的URL末尾使用后缀来确定响应的格式 所以http://foo/bar.json将导致json响应,http://foo/bar.xml在xml文档中,以及http://foo/bar在普通HTML页面中 我试图在一个初始组中(在begin或auto操作中)通过重写为后续操作发送的URL来实现这一点,但这似乎不起作用 对此有何建议??包括反对意见——毕竟这可能不是一个好主意 谢谢- sub type : Regex('foo/bar(\.[^/]+)?') { my (

我想在应用程序中的URL末尾使用后缀来确定响应的格式

所以
http://foo/bar.json
将导致json响应,
http://foo/bar.xml
在xml文档中,以及
http://foo/bar
在普通HTML页面中

我试图在一个初始组中(在
begin
auto
操作中)通过重写为后续操作发送的URL来实现这一点,但这似乎不起作用

对此有何建议??包括反对意见——毕竟这可能不是一个好主意

谢谢-

sub type : Regex('foo/bar(\.[^/]+)?') {
    my ( $self, $c ) = @_;
    my ( $type) = @{ $c->req->captures };
    $c->log->info("Type: ".$type);
    $c->response->body( $c->welcome_message );
}

您可以尝试上面的代码,现在基于$type,您必须将视图切换到json/xml/html。

制作表单的URL如何
http://foo.com/bar/json
http://foo.com/bar/xml
等,然后使用此解决方案: