Symfony GET/POST 方法中请求参数的最佳实践
Best practices for request parameters in GET/POST methods in Symfony
在 API URL 中请求多个参数并为此请求特定类型的最佳做法是什么。
例如我有url:http://host/my_api/?param_1=p1¶m_2=p2
现在我在 parameters.yml 中有一个参数,说明我在 URL 中需要多少个参数,在方法中我检查参数是否具有我需要的特定类型。
但我不确定这是否是请求参数的最佳做法。对于我了解某个参数是否缺少特定错误消息的内容,这对我很有用。
有什么建议或意见吗?
谢谢!
*我使用 FOSRestBundle 创建一个 API URL.
如果你想坚持查询参数,你可以添加一个简单的 "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;
如果你想利用它
在 API URL 中请求多个参数并为此请求特定类型的最佳做法是什么。
例如我有url:http://host/my_api/?param_1=p1¶m_2=p2
现在我在 parameters.yml 中有一个参数,说明我在 URL 中需要多少个参数,在方法中我检查参数是否具有我需要的特定类型。
但我不确定这是否是请求参数的最佳做法。对于我了解某个参数是否缺少特定错误消息的内容,这对我很有用。
有什么建议或意见吗? 谢谢!
*我使用 FOSRestBundle 创建一个 API URL.
如果你想坚持查询参数,你可以添加一个简单的 "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;
如果你想利用它