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

时间:2014-09-24 08:11:28

标签: perl catalyst

我想在Catalyst应用中使用网址末尾的后缀来确定响应的格式。

因此http://foo/bar.json将导致json响应,xml响应中为http://foo/bar.xml,而纯HTML页面中则为http://foo/bar

我试图通过beginauto行动在最初的集团中做到这一点 - 通过重写用于调度后续行动的网址,但这似乎不是工作。

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

谢谢 -

1 个答案:

答案 0 :(得分:1)

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。