我有一个使用symfony的完整工作项目,我需要在其中添加一些rest api。
我正在使用FosRestBundle,并且已经使用以下配置在我的localhost中工作了:
# FOSRest Configuration
fos_rest:
body_listener: true
format_listener:
rules:
- { path: '^/', priorities: ['json'], fallback_format: json, prefer_extension: false }
param_fetcher_listener: true
view:
view_response_listener: 'force'
formats:
json: true
当我把这个代码(在我的localhost中完全正常工作)放在prod环境中时,其余的api继续工作,但我所有的其他控制器只是给我一个"文本"而不是HTML。我在屏幕上看到了代码,而不是我的模板。
有谁知道造成这种行为的原因是什么?
class TestRestController extends FOSRestController
{
/**
* @Rest\Get("/test")
* @QueryParam(name="id")
* @QueryParam(name="name")
*/
public function indexAction(\FOS\RestBundle\Request\ParamFetcher $paramFetcher){
....
}
}
感谢。
答案 0 :(得分:3)
例如,如果您的所有API实例都以/api/...
开头,则可以使用此配置:
fos_rest:
format_listener:
rules:
- { path: ^/api, priorities: [ json, xml ], fallback_format: json, prefer_extension: true }
- { path: '^/', priorities: ['text/html', '*/*'], fallback_format: html, prefer_extension: true }