第八章 参数规则:接口参数规则配置.pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
参数规则:接⼜参数规则配置 “播下⼀种思想,收获⼀种⾏为;播下⼀种⾏为,收获⼀种习惯;播下⼀种习惯,收 获⼀种性格;播下⼀种性格,收获⼀种命运。” -- 《成君忆:⽔煮三国》 1.12.1 参数解析 参数, 于接⼜来说,是⾮常重要的输⼊。 于外部调⽤来说,同等重要。 因此, 于参数这块,我们是希望能够既减轻后台开发 接⼜参数获取、判断、验 证、⽂档编写的痛苦;又便于客户端⽅便的、⾃由的调⽤;既利已又利他。 由此,我们引⼊了 参数解析 这⼀概念,即:通过配置参数的规则,即可⾃动实现参 数的获取和验证。 1.12.2 参数解析的配置规则 熟悉Yii的同学, 于以下的规则配置应该倍感亲切,但是不熟悉的同学也可以同样快 速上⼿。因为,你会慢慢发现,这样的规则很符合我们PHP开发的规范,如果没有, 我们继续努⼒改进。 格式如下: array( 参数名 = array(name = 接⼝参数名称, type = 类型, de ... ... ) 1.12.3 ⽰例 (1)简单的⽰例 假设这样的业务场景,我们需要提供⼀个⽤户登录的接⼜,其中需要⽤户名和密码, 因此: ?php class Api_User extends PhalApi_Api public function getRules() return array( login = array( username = array(name = username), password = array(name = password), ), ); } public function login() return array(username = $this-username, password = } } 当我们这样调⽤接⼜时: /?service=User.Loginusername=testpassword=123456 就可以获取到需要的参数: ret:0,data: username:test,password:123456},msg: 从中,可以很容易理解:参数规则需要统⼀配置在接⼜实现类⾥⾯的 getRules() 函 数,随后即可以通过类成员属性⽅式获取,如: $this-username 。 (2)更完善的⽰例 很多时候我们都会 ⽤户名和密码作⼀些验证,如是否必须、长度、最值,以及默认 值等。 继续上⾯的业务场景,我们登录下⽤户名和密码必须,且密码长度⾄少为6个字符, 则可以调整参数规则: login = array( username = array(name = username, require = true), password = array(name = password, require = true, ), 尝试⼀下⾮法的参数请求,如⽆任何参数的情况下,访问/?service=User .Login ,返 回: ret:400,data:[],msg:Illegal Param: wrong param: username 再尝试⼀下密码长不 的情况,访问/? service=User .Loginusername=testpassword= 123 ,返回: ret:400,data:[],msg:Illegal Param: password.len should = 1.12.4 三级参数 (1)系统参数 已被系统固定占有的参数,⽬前只有⼀个,即:service ,为需要调⽤的服务,类型为 字符串,格式为: . ,⾸字母不区分⼤⼩写,建议统⼀以⼤写开头。 以下是⼀些⽰例: #推荐写法 /?service=User.GetBaseInfo #正确写法 (开头⼩写) /?service=user.getBaseInfo #正确写法 (⽅法名⼩写,但类名只能开头⼩写,否则会导致linux系统下⽂件加载失 ) /?service=user.getbaseinfo #错误写法 (缺少⽅法名) /?service=Us

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档