Restler class 具有基于方法类型的必需参数
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 方法需要哪些属性。
假设我有这个用于我的 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 方法需要哪些属性。