首先放一张图,然后再码文字,读者可以由图想想本文是否是你要找的类型的文章。

如何用Yii2框架写出自己的第一个restful风格的api,首先你得先知道或是了解路由以及路径美化等知识…..笔者也是个小白,所以很多知识理解的都不够深刻,下文以获取数据库中的某个库对应的user表数据为例,叙述写一个简单的API的大致过程。

1.首先从目录下的backend或是frontend复制一份,并改名为api放在与backend同级目录下。api的目录结构如下:

2.修改main文件,文章不好排版,因此代码都以图片的形式展现,还请见谅。(如需参考代码,文章末尾会附上笔者的Github链接)。

其中注意’basePath’,多部分的额教程都没有加上这个变量的。与backend和frontend相比,api对应的main.php文件还是有几处改动的。其中rest-rules.php文件中对应着相应的rules。该文件截图如下(‘pluralize’属性,路径禁止变成复数):

3.找到common文件夹下的bootstrap.js文件,增加上api。

4.优化路径,找到api\web文件夹下的.htaccess文件(没有可以新建一个),写上如下代码。

5.现在到了最为重要的一步了,即配置modules文夹下的v1文件。默认情况下,backend和frontend文件夹下都没有这个文件,需要自己手动建立。然后对应着目录生成文件,并且最终形成如上目录。当然,你在这可以选择用Gii工具生成代码,但是需要注意的一点是,这里的UserController.php中的控制器类继承的是yii\rest\ActiveController类,而不再是Controller类了。

6.配置好 文件后,就可以用火狐或者谷歌浏览器模拟请求了,请求ide路径见一张图地址栏。其中,yii2teacher.backend.com是笔者配置的优化后的路径。浏览器输出的’HelloWorld!!!’是UpdateAction.php中返回的内容。当读者看见与其类似的结果,就说明一个简单的api已经写好了,下一步可以进一步考虑完善该api。

7.附:简单说一下笔者在Win7系统环境下配置路径的过程。首先,找到’系统盘:\Windows\System32\drivers\etc\hosts’文件,在末尾加上’127.0.0.1    yii2teacher.backend.com’。然后,在phpStudy中找到站点域名管理,新增域名’ yii2teacher.backend.com’,网站目录即为’项目路径\api\web’。

附:值得参看的资料:

RESTful API in Yii 2 Advanced Application Template
YII2 restful 试例
笔者的GitHub地址