我想在Catalyst应用中使用网址末尾的后缀来确定响应的格式。
因此http://foo/bar.json
将导致json响应,xml响应中为http://foo/bar.xml
,而纯HTML页面中则为http://foo/bar
。
我试图通过begin
或auto
行动在最初的集团中做到这一点 - 通过重写用于调度后续行动的网址,但这似乎不是工作。
对此有何建议?包括反对意见 - 毕竟这可能不是一个好主意。
谢谢 -
答案 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。