我开始使用symfony3和FOSRestBundle作为REST API的新项目。一切都按预期工作,但我有一个问题。我有我的控制器上这两个动作和路由器的配置:Symfony FOSRestBundle操作步骤
api_marcas_get_all_marca_paginated GET ANY ANY /api/marca/{limit}/{page}.{_format}
api_marcas_delete_remove_marca GET ANY ANY /api/marca/delete/{marcaid}.{_format}
的问题是,当我把这个(从邮差):
127.0.0.1:8000/api/marca/delete/105
其他行动(api_marcas_get_all_marca_paginated)响应...
是的..我知道我可以使用“DELETE”http方法,这是行得通的......但是......他们为什么碰撞?
这里是我的操作:
/**
* @Rest\Get("/marca/{limit}/{page}")
*/
public function getAllMarcaPaginatedAction(Request $request)
{... code here ...}
和
/**
* @Rest\Get("/marca/delete/{marcaid}")
*/
public function deleteRemoveMarcaAction(Request $request)
{ ... //code here... }
在这个顺序。
我做错了什么? 与动作的顺序有什么关系?谢谢...
感谢评论@dubrox。你有任何建议,以避免这种路线的问题? –
我刚刚更新了我的答案,建议使用'requirements'属性来避免这种模式冲突。但在你的特定情况下,如果你真的不想使用HTTP标准的'DELETE',你应该真的避免'GET'来删除,并且至少使用'POST'方法。 – dubrox