繁体   English   中英

具有基于方法类型的必需参数的Restler类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM