使用带有Symfony路由的http请求标头来返回不同的内容(html / json)

时间:2012-06-11 20:41:45

标签: rest symfony routing fosrestbundle

我正在使用FOSRestBundle处理REST API,并且我希望能够使用相同的URL来返回HTML和JSON,具体取决于请求Accept标头;即如果您直接从浏览器调用URL(Accept : text/html等),则从twig文件返回HTML,如果您正在发出AJAX请求(Accept : application/JSON等),则使用FOSRestBundle返回JSON。

目前我可以通过在每个函数的顶部抛出一个小的if语句来检查请求接受标头,如果它要求HTML它返回twig文件,如果它要求JSON它命中服务,我可以使用它。

2 个答案:

答案 0 :(得分:1)

您应该向您的请求发送“Accept”标头。阅读content negotiation (“Accept” HTTP header) based routing in symfony2.0Format listener

答案 1 :(得分:0)

在命令行模式下运行时,请求范围不存在,我不得不从每个构造函数中删除请求,问题就消失了。