【问题标题】:Best practices for request parameters in GET/POST methods in SymfonySymfony 中 GET/POST 方法中请求参数的最佳实践
【发布时间】:2017-09-12 03:04:54
【问题描述】:

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

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

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

但我不确定这是否是请求参数的最佳做法。了解某个参数是否缺少特定错误消息的含义对我很有用。

有什么建议或意见吗? 谢谢!

*我使用 FOSRestBundle 创建 API URL。

【问题讨论】:

标签: php symfony fosrestbundle


【解决方案1】:

如果你想坚持查询参数,你可以添加一个简单的“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;

如果你想使用它

【讨论】:

    猜你喜欢
    • 2021-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    相关资源
    最近更新 更多