Yii2 使用 RESTful 经验总结

技巧库 · forecho · 于 10个月前 发布 · 1005 次阅读

1年前我写过一篇文章是《Yii2 如何实现 RESTful?》,写这篇文章时候我刚刚接触 RESTful 没多久,这1年下来,我的经验又增长了不少,下面我来分享一下我的一些经验。

刚使用 Yii2 来开发 RESTful 的时候我安装官方权威指南操作的,控制器先继承了 yii\rest\ActiveController,并且使用了 public modelClass 然后就自带了 CRUD 功能。那个时候我就想默认的增删改查接口不一定能满足我的需求啊,所以我简单粗暴的使用了下面这个方式注销了自带的 CRUD,而且还自己写在了自己定义的父类控制器了,这就意味着我所有的控制器都是默认使用了这个方法。

public function actions()
{
   $actions = parent::actions();
    // 注销系统自带的实现方法
    unset($actions['index'], $actions['update'], $actions['create'], $actions['delete'], $actions['view']);
    return $actions;
}

然后自己去实现,现在想想那个时候有点太天真了。首先这样做就意味着你的工作量大大增加。 其实你完全没必要「一棒子打死」注销 CRUD,而是看你的需求,每个控制器的情况是不一样的,所以你要结合需求 看情况去注销自带的 CRUD 实现方式。其实大多数情况下默认自带的 CRUD 实现方式都能满足你的需求,大多数你觉得不能满足是因为你不知道 Model 的强大。

返回的数据也不要太纠结。

以后我会慢慢介绍一些技巧,现在我先分享两个。

学会使用 Model fields() 方法

可以看这篇教程:Model fields() 方法的使用

学会使用 Model 的事件

可以看这篇教程:Yii2 自带事件的用法

学会在 URL 中使用

可以看官方教程 Overriding extraFields()


最后就是多看官方的权威指南 http://www.yiiframework.com/doc-2.0/guide-rest-quick-start.html

本文由 forecho 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。


如果这篇文章对您有帮助,不妨微信小额赞助我一下,让我有动力继续写出高质量的教程。

共收到 1 条回复 RESTful 总结
fecommerce#110个月前 0 个赞

之前有resuful的需求,个人整理的restful的文章:

1.yii2 RESTful 接口 api -1 : 接口的基本配置:

http://www.fancyecommerce.com/2016/05/04/yii2-restful-接口-api-1-:-接口的基本配置/

2.yii2 RESTful 接口 api -2 : 自定义函数:

http://www.fancyecommerce.com/2016/05/04/yii2-restful-接口-api-2-:-自定义函数/

3.yii2 RESTful 接口 api -3 : 账户验证 和 速度控制:

http://www.fancyecommerce.com/2016/05/04/yii2-restful-接口-api-3-:-账户验证-和-速度控制/

4.yii2 RESTful 接口 api -4: restful的测试工具:

http://www.fancyecommerce.com/2016/05/04/yii2-restful-接口-api-4:-restful的测试工具/

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册