简单的说,REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。
主要遵循两个准则:
其实 Yii2 框架本身就对 RESTful 是友好支持的,具体可以看官方文档,或者去看源码,都是可以的。
下面分享我写的Yii2 RESTful DEMO。
具体实现可以看我的代码,有不懂的可以留言。下面我重点说一下值得注意的地方:
新建一个 user 控制器,输入以下代码:
namespace app\controllers;
use yii\rest\ActiveController;
class UserController extends ActiveController
{
public $modelClass = 'app\models\User';
}
然后你在浏览器里面输入 用 GET 请求 localhost/basic/web/users
这个地址是可以跑的,因为继承的 ActiveController
这个类是有对 user RESTful 表的 基本操作的,包括 GET,POST,PUT,PATCH,DELETE。所以我们要注销系统自带的实现方法,代码如下,添加到控制器中,后者自己新建一个 ActiveController 类。
public function actions()
{
$actions = parent::actions();
// 注销系统自带的实现方法
unset($actions['index'], $actions['update'], $actions['create'], $actions['delete'], $actions['view']);
return $actions;
}
然后下面我们就可以写自己的 actionIndex、actionCreate、actionUpdate 和 actionDelete 了。
框架其实是提供三种验证方式的,我就说一下最长用的 token 实现验证吧。
首先你要在控制器中加入下面代码:
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['authenticator'] = [
'class' => CompositeAuth::className(),
'authMethods' => [
QueryParamAuth::className(),
],
];
return $behaviors;
}
然后你要去修改 user 的 model,具体参照这块代码:添加 restful 授权认证
本文由 forecho 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。
如果这篇文章对您有帮助,不妨微信小额赞助我一下,让我有动力继续写出高质量的教程。
@zhanghuid #3楼 @xjdata #4楼 等我有时间吧,建议你们可以先去慕课网看视频教程
@kiwigo #8楼 你这个问题问的,别人怎么帮助你?建议你先看看怎么提问 http://www.getyii.com/topic/44
之前有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的测试工具/