Yii2.0 RESTful API 之版本控制
之前我写过两篇关于 Yii2.0 RESTful API
如何搭建,以及 认证
等处理,但是没有涉及到版本管理,今天就来谈谈版本管理如何实现。
索性就从头开始一步一步搭建吧,但是关于一些概念以及使用本篇就不一一解释了,可以参考 第一篇 Yii2.0 RESTful API 基础配置教程 进行配置
安装 Yii2.0
通过 Composer 安装
这是安装 Yii2.0 的首选方法。如果你还没有安装 Composer
,你可以按照这里的说明进行安装。
安装完 Composer
,运行下面的命令来安装 Composer Asset 插件:
安装高级的应用程序模板,运行下面的命令:
拷贝 backend 目录,命名为 api
打开api\config\main.php
修改id
,controllerNamespace
:
初始化高级模板
在初始化之前不妨先看下这篇文章
打开common\config\main.php
开启url
路由美化规则
打开common\config\bootstrap.php
添加以下别名
ok,以上工作准备完毕,接下来进入正题,
关于版本更多介绍可以参考 权威指南 ,这里不过多解释(PS:主要我也不会......)
我的理解:
Yii2 的版本你可以理解为不同的模块,每一个版本就是一个新的模块,比如常见的 v1,v2 等。
模块的搭建
关于如何生成模块,我们可以使用 GII 来进行生成.
配置 GII
打开 api/config/main-local.php
文件 修改如下:
我这里因为使用的是 Homestead ,默认是不允许访问 GII
的,所以得加上 'allowedIPs' => ['127.0.0.1', '*']
,否则会出现 Forbidden (#403), 你可以根据自己的需要来进行配置,或者不配置
生成 Modules
浏览器中输入 http://your host/gii
,可以看到 Module Generator
,点击 Start
Modules Class
中输入:api\modules\v1\Module
Module ID
中输入 v1,(一般会自动输入)
点击 Preview
最后点击 Generate
进行生成
配置模块
打开 api/config/main.php
文件,修改 modules
接着修改 urlManager
基于以上,Yii2.0 RESTFul API 就实现了版本管理,我们可以通过如下地址进行访问:
多说一点,我上方的地址是已经映射到 api/web 目录,请根据自己的实际情况进行配置
打开刚生成的 modules
文件目录,可以看到里面存在一个 v1
的目录,可以看到该目录还有一个controllers
,以及一个 views
目录
,我们刚才访问的 defaults
其实就是这两个文件,和传统的 web 项目一样控制器渲染视图
好了,你可能知道了,我们以后的控制器代码就放到 modules/v1/controllers
里了
刚才仅仅是默认 GII 为我们生成的代码,因为我们是 API,所以 views
目录,我们一般情况下用不到。
新建一个 rest
的控制器
在 modules\v1\controllers
下新建 UserController
修改 api/config/main.php
中的urlManager
试着访问下
ok,以上就是 Yii2.0
版本管理的实现方式
格式化响应
修改 api/config/main.php
在components
数组中添加 response
至此关于 Yii2.0 RESTFul API 我一共完成了 3 篇文章,分别为:
写得实在不怎么样,您如果看了有收获,不妨留言给个评论,或者您觉得写得有问题,或者不明白,也可以留言,我们可以一块探讨研究。
版权声明: 本文为 InfoQ 作者【Middleware】的原创文章。
原文链接:【http://xie.infoq.cn/article/519b14de267732f2ac6c3a3c4】。文章转载请联系作者。
评论