在接口类文件里,可以设置某个接口方法的请求参数相关过滤条件,然后直接用$this调用请求参数,如下:
<?php
namespace App\Api\Home;
use PhalApi\Api;
/**
* 杂项
*/
class SiteInfo extends Common {
public function getRules() {
return array(
'advice' => array(
'content' => array('name' => 'content', 'require' => true, 'type' => 'string','des'=>'反馈内容'),
'contact' => array('name' => 'contact', 'require' => true, 'type' => 'string','des'=>'联系电话'),
'imageList' => array('name' => 'imageList', 'require' => false, 'type' => 'string','des'=>'图片'),
)
);
}
SiteInfo的advice接口有三个请求参数,其中content和contact都是必传的.由于所有的接口类都继承Api所以,我们去看一个请求来时,是怎么在运行请求方法时,先过滤相关参数是否合法.
PhalApi\Api类的初始化方法如下:
/**
* 初始化
*
* 主要完成的初始化工作有:
* - 1、[必须]按参数规则解析生成接口参数
* - 2、[可选]过滤器调用,如:签名验证
* - 3、[可选]用户身份验证
*
* @uses Api::createMemberValue()
* @uses Api::filterCheck()
* @uses Api::userCheck()
* @return null
*/
public function init() {
$this->createMemberValue();
$this->filterCheck();
$this->userCheck();
}
第一步$this->createMemberValue();就是对请求参数进行检查,我们看函数内容:
/**
* 按参数规则解析生成接口参数
*
* 根据配置的参数规则,解析过滤,并将接口参数存放于类成员变量
*
* @uses Api::getApiRules()
*/
protected function creat