yii2之写一个最简单的restful 例子
利用basic包,创建一个restful 例子
(1)首先将下载好的basic包放到服务器的根目录下,添加cookieValidationKey后,完成基本的配置后。按照上面的步骤配置yii2中的RESTful。
(2)在数据库中创建一个数据库 ceshi,在ceshi数据库中创建一个user表,sql语句如下:
CREATE TABLE user(
id int(10) primary key not null auto_increment ,
username varchar(20) not null,
password varchar(20) not null,
tele varchar(20)
)
(3)使用gii创建ID为v1的模块module ,之所这样做是为了将restful与负责网站部分业务的控制器分割开,避免造成不必要的误会。开启服务器后,直接在地址栏中输入 localhost/basic/web/gii 即跳转到gii页面 点击 Module Generator的start按钮开始创建module
需要输入两个参数Module Class 表示创建module的路径 Module ID 表示module的id
Module Class:app\modules\v1\Module
Module ID: v1
点击generate按钮 再看basic目录可以看新增加了modules文件夹,以及其下面的子文件controller view等 注意我们还要将 新跳出的页面的配置代码添加到 /config/web.php的config数组中
'modules' => [
'v1' => [
'class' => 'app\modules\v1\Module',
],
],
可以访问http://localhost/basic/web/v1/default 检查是否配置成功。
(4)创建RESTful API 控制器
通过(3)步中的操作 我们获得了 modules/v1/controllers/DefaultController 控制器 我们可以将它设置为API 也可以在modules/v1/controllers下继续创建控制器来作为api,本例中直接使用DefaultController 来创建RESTful api
对自动生成的DefaultController进行一些修改
use yii\rest\ActiveController;
class DefaultController extends ActiveController
{
public $modelClass = 'app\modules\v1\models\User';//设置该控制可以直接操作的model对应的数据表,在此处就是直接操作user表
}
(5)modules/v1/下创建对应的model
同样的返回gii首页,或者通过左边的导航栏跳转到model自动生成页面
输入相应的参数
Table Name: user
Model Class:user
Namespace:app\modules\v1\models //指定是modules/v1 下的models 不要和app/models搞混了。
点击预览生成就行了。
同样的我们可以看到目录又多了一个models了。
(6)在火狐中使用HttpRequester 调试RESTful访问
一般网上都是推荐,使用chrome的postman 但是现在谷歌在中国已经停运了,所以postman也可能不使用了,要是不能使用postman的话,在火狐上面用HttpRequester也是不错的选择。打开HttpRequester 在地址栏中输入 localhost/basic/web/v1/defaults 可以在旁边的返回框中看到 返回 200 ok 但是就是没有内容,这是为什么呢? 这是因为,我们还有向数据库中user表中插入数据啊! 我们可以通过sql语句插入两条数据
INSERT INTO `user`(`id`, `username`, `password`, `tele`) VALUES ('1','张三','12345','7788');
INSERT INTO `user`(`id`, `username`, `password`, `tele`) VALUES ('2','李四','54321','1010');
再次输入,可以看到有xml格式的数据,我们插入的所有信息都出来了。结果如我所讲的话,恭喜你yii2中最基础的RESTful 你已经掌握了。还有其他几种访问方式
1.插入数据POST
地址栏输入localhost/basic/web/v1/defaults 选择POST访问方式 content-type选择 application/x-www-form-urlencoded content中输入 username=王五&password=11111&tele=0000 表示在user中创建 username=王五 的第三条数据。
2.更新数据PUT
地址栏输入localhost/basic/web/v1/defaults/1 选择PUT或者PATCH访问方式 content-type选择 application/x-www-form-urlencoded content中输入 username=张小花&password=8888&tele=6666 表示在user中修改id=1的数据 。
3.删除数据
地址栏输入localhost/basic/web/v1/defaults/1 选择DELETE访问方式 删除user表中id=1的数据。
4.查询具体id的数据
地址栏输入localhost/basic/web/v1/defaults/1 选择GET,POST访问方式 获得的id=1的数据
HttpRequester:
好了yii2中一个最基本的restful例子就说到这了,关于restful更加复杂详细的知识将在下一篇文章介绍。