Symfony中GET / POST方法中请求参数的最佳实践

时间:2017-04-16 08:56:24

标签: php symfony fosrestbundle

在API URL中请求许多参数并为其请求特定类型的最佳做法是什么。

例如,我有网址:http://host/my_api/?param_1=p1&param_2=p2

现在我在parameters.yml中有一个参数,说明我需要在URL中使用多少参数,在方法中我检查参数是否具有我需要的特定类型。

但我不确定这是否是请求参数的最佳做法。对于我来说,知道参数是否缺少特定错误消息的内容是有用的。

有任何建议或意见吗? 谢谢!

*我使用FOSRestBundle创建API URL。

1 个答案:

答案 0 :(得分:0)

如果你想坚持查询参数你可以添加一个简单的“checkFunction”,例如,如果你想要你的两个参数,你可以在你的控制器中像这样简单地做

/**
*@View
*/
public function apiAction(Request $request)
{
    $this->checkRequiredParams($request);
    ...
}


private function checkRequiredParams($request){
    $required = ["param_1","param_2"];

     foreach ($required as $r) {
        if(!$request->get($r)){
            throw new AccessDeniedException("ACCESS DENIED - missing parameter $r ");
        }
     }
     return true;
}

所以如果缺少参数会引发异常, 在此函数中,您还可以测试模式或类型检查值 别忘了

 use Symfony\Component\Security\Core\Exception\AccessDeniedException;

如果你想利用它