php接口开发与部署,API开发---快速开发API通用接口

# API开发---快速开发API通用接口

> 在在真实开发中 ,很多API接口功能都是逻辑非常简单 功能也是相似的 为了开发方便 缩短开发周期

> 很多简单接口都可以通过配置文件来完成

[TOC]

通过实例讲解一下实现过程

### 首先 在基类中创建一个_empty

~~~

protected $api_config=[];

/**

* API默认统一操作方法

* Power: Mikkle

* Email:776329498@qq.com

* @return array

*/

public function _empty(){

$action = $this->request->action();

$this->api_config=Config::get("api_{$this->request->controller()}");

if (isset($this->api_config[$action])){

$action_name = $this->api_config[$action]['action_name'];

//判断api_config中定义执行的方法是否存在

if( method_exists($this,$action_name)){

return $this->$action_name($action);

}else{

return self::showJsonReturnCodeWithOutData(1002);

}

}else{

return self::showJsonReturnCodeWithOutData(1003,"参数错误");

}

}

~~~

### 其次在基类中创建一个通用的修改方法

~~~

/**

* 通用添加修改处理方法

* Power: Mikkle

* Email:776329498@qq.com

* @param $action //方法名称

* @return array

*/

protected function handleEditData($action){

try{

if($this->request->isPost()){

throw new Exception("错误的提交方式");

}

if( ! isset($this->api_config[$action]['model_name']) ){

throw new Exception("错误的处理方式");

}

$param_list = isset($this->api_config[$action]['param_list'])

? $this->api_config[$action]['param_list']

: false ;

$model_name = $this->api_config[$action]['model_name'];

$validate_name = isset($this->api_config[$action]['validate_name'])

? $this->api_config[$action]['validate_name']

: false;

return $this->editData($param_list,$validate_name,$model_name);

}catch (Exception $e){

Log::error($e->getMessage());

return self::showJsonReturnCodeWithOutData(1008,$e->getMessage());

}

}

~~~

当然 更多方法等你创建 加油 也欢迎大家分享你的通用方法

### 创建指定的Config配置文件

我们在api模块下的extra扩展目录创建指定的config文件即可

在上面的配置中 我是使用这个方法

~~~

$this->api_config=Config::get("api_{$this->request->controller()}");

~~~

>[info] 那么我们定义时候的文件名就是api_加上控制器名称

> 假设我们控制器名称是Index 我们就创建api_index的cinfig文件

~~~

/**

* Created by PhpStorm.

* Power By Mikkle

* Email:776329498@qq.com

* Date: 2017/11/3

* Time: 20:27

*/

return [

"useredit"=>[

'action_name' => 'handleEditData',

'param_list'=>[

"address"=>"address/s",

"contacts"=>"contacts/s",

"jobs"=>"jobs/s",

"mobile"=>"mobile/s",

"tencent_code"=>"tencent_code/s",

],

'model_name' => "base/PersonnelNode",

'validate_name' => 'base/PersonnelNode.edit',

],

];

~~~

### 最后就是创建模型和验证器类即可

### 接口地址我就不说了 你自己领悟吧

### 你可以考虑使用Error空控制器

好处 你懂的

~~~

namespace app\api\controller;

/**

* Created by PhpStorm.

* Power By Mikkle

* Email:776329498@qq.com

* Date: 2017/10/31

* Time: 20:26

*/

use think\Controller;

// 空控制器

class Error extends Base {

// 空操作

protected $api_config=[];

public function _empty(){

$action = $this->request->action();

$this->api_config=Config::get("api_{$this->request->controller()}");

if (isset($this->config_list[$action])){

$action_name = $this->api_config[$action]['action_name'];

//判断api_config中定义执行的方法是否存在

if( method_exists($this,$action_name)){

return $this->$action_name($action);

}else{

return self::showJsonReturnCodeWithOutData(1002);

}

}else{

return self::showJsonReturnCodeWithOutData(1003,"参数错误");

}

}

}

~~~

## 本节综述

>[info] 通过空控制器 空方法 加上配置文件 你甚至可以创建没有控制器文件的API接口

> API总是五花八门的 更多脑洞等你填满

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值