Acceptヘッダによるコンテンツ切り替え

フォーマットの指定はクエリパラメータでできるんですが、別の方法として、Acceptヘッダを使った指定ができるようにしてあります。

自分も実際に「同じURLに対してAcceptで指定したMIME-Typeによって返すコンテンツを切り替える」なんてことをやっているわけですが、これだとキャッシュができなくなってしまうんですね。で、どうしようか考えなきゃな〜と思ってるところなのです。何か良いアイデアがあったら教えてちょんまげ。

で、今ちょっと考えているのは/foo.htmlだったらHTMLを、/foo.jsonだったらJSONを返すというものです。

sub auto : Private {
  (undef, $c->stash->{type}) = split /\./, uc $c->req->path;
}

sub foo : Local {
  $c->stash->{data} = {...};
  $c->forward('View::' . $c->stash->{type});
}

こんな感じで。

でもこうすると静的コンテンツと区別が付かないから「static/以下は静的」とかしなきゃいけなくなって( ;´Д`)いやぁぁぁぁぁー!

追記
ikasam_aさんのdel.icio.usより

それなんて C::P::Flavour ...

( ;´Д`)いやぁぁぁぁぁー!
そうよね。皆考えることは一緒よね。