欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

接口方法如何写好

程序员文章站 2022-06-14 19:31:04
...
打算写这些接口提供给别人用,想到两种方法,不知道那种比较好呢

第一种方法接口,这种扩张比较麻烦,而且位置都固定
public function student($name, $age, $sex)


第二种方法接口,写数组
public function student([''name"=>$name, “age”=>$age, "sex"=>$sex])


请问那种比较好了


回复讨论(解决方案)

作为接口,当然是要明确的指明参数
总不能我随便弄个参数,就能有结果?

推荐第一种。
第二种使用方便,但如果团队合作很麻烦。

作为接口,当然是要明确的指明参数
总不能我随便弄个参数,就能有结果?



也是,最主要方法里面的Argument位置都固定死,不太友善。

其实 接口 就是对象间进行沟通的规范,没有规矩不成方圆嘛
你的第二方案也不是没有可取之处,但因约束性不强,需谨慎使用

推荐第一种。
第二种使用方便,但如果团队合作很麻烦。



但是方法的元素都需要加密判断,以防在传输过程中给修改,$params是个数组[$name,$sex,$age]
Yii::$app->siteApi->check($functionName, $params=[ ], Encryption::encrypt($params))

我觉得看你需求吧,假设注册账号,邮箱、姓名和系统生成的userid,那么方法应该要
function register($user_id, $email, $name)

但如果是更新用户信息,而用户信息包括了非常多诸如电话、昵称、qq、学校、性别、爱好等等,而又可以支持单个字段更新,那么最好传数组了
function update_info($user_info)

第二种更好一些,容易兼容老版本,扩展性超强,适合不断迭代的系统

不好说,看情况了。
用第一种,规范
第二种的话,把数组换成对象:

//interfacepublic function student(Student $student);//classpublic function student(Student $student){    $this->student = $student;};//studentprotected $data = [    'name' => 'xxx',    'age' => '0',    'sex' => 0,];//geter//seter

直接用数组没有限制不太好。没有限制有时候确实很方便,但东西多了,乱了。

楼上各位朋友的建议非常的好。