接口版本
Api 接口调用控制器默认占用 v1 版本号,在二次开发中您都应该另起一个版本号进行新增或修改。
下面将举例对App控制器进行「新增接口」和「修改接口」的操作:
[ 新增接口 ]
在
application\api\controller目录下新建v2目录。在
v2目录下创建控制器类App,文件名为App.php,并且继承于\app\api\controller\v1\App。<?phpnamespace app\api\controller\v2;class App extends \app\api\controller\v1\App{/*** 方法路由器* @access protected* @return array*/protected static function initMethod(){return [// 添加一个广告'test.app.item' => ['testAppItem', false],];}public function testAppItem(){return 'v2新增接口调用成功';}}
调用并测试接口:
http://localhost:8080/api/v2/app/method/test.app.item,返回请求结果。{"data": "v2新增接口调用成功","message": "success","status": 200}
如果不是对已有接口进行操作而是新建的话,则应该继承
\app\api\controller\CareyShop。<?phpnamespace app\api\controller\v2;use app\api\controller\CareyShop;class NewApi extends CareyShop{/*** 方法路由器* @access protected* @return array*/protected static function initMethod(){return [];}}
[ 修改接口 ]
在
application\api\controller目录下新建v2目录。在
v2目录下创建控制器类App,文件名为App.php,并且继承于\app\api\controller\CareyShop。修改控制器方法路由器,以
命名空间的方式指向待新建的模型。<?phpnamespace app\api\controller\v2;use app\api\controller\CareyShop;class NewApi extends CareyShop{/*** 方法路由器* @access protected* @return array*/protected static function initMethod(){return [// 获取应用列表'get.app.list' => ['getAppList', 'app\api\model\App']];}}
新建一个模型后继承
\app\common\model\CareyShop,或继承被修改的模型。之所以新建一个模型是不建议对框架的模型进行改动,用新建或继承模型的方式比较稳妥。 ```php <?php namespace app\api\model;
use app\common\model\CareyShop;
class App extends CareyShop {
/** 获取应用列表* @access public* @param array $data 外部数据* @return bool*/public function getAppList($data){return ['修改后的接口']}
} ```
调用并测试接口:
http://localhost:8080/api/v2/app/method/get.app.list,返回请求结果。{"data": ["修改后的接口"],"message": "success","status": 200}
确认 v1 版本号的接口是否也正常:
http://localhost:8080/api/v1/app/method/get.app.list,返回请求结果。{"data": {"app_id": 1,"app_name": "admin"},"message": "success","status": 200}
备注:
在示例中方法路由器的具体使用可以查阅,接口控制器。
