[英]PHP Restler API inputvalidation with multiple params using @type
[英]Restler class with required params based on method type
假设我有这个要与我的API类一起使用
class EventInfo {
/// @var int $start The Start time
public $start
/// @var string $url The URL for the event {@required false}
public $url = null;
}
现在,我想将EventInfo
用于POST和PATCH方法。 当我执行POST时, $start
是要设置的必需属性。 $url
将作为可选参数进入。
但是,当我执行PATCH操作时,就不再需要$start
。 我可能正在经过一个新的开始时间,但可能没有。
我该如何指定?
首先,使用DocBlock语法
class EventInfo {
/**
* @var int $start The Start time
*/
public $start;
/**
* @var string $url The URL for the event {@required false}
*/
public $url = null;
}
这将设置默认的必需和可选属性。 然后,您可以使用{@required }
注释在api方法级别控制所需的属性。 参见下面的例子
class Home
{
public function index()
{
return array(
'success' => array(
'code' => 200,
'message' => 'Restler is up and running!',
),
);
}
public function patch(EventInfo $info)
{
return func_get_args();
}
/**
* @param EventInfo $info {@required start,url}
* @return array
*/
public function post(EventInfo $info)
{
return func_get_args();
}
}
您也可以类似地添加{@properties start}
注释,以限制API方法需要哪些属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.