脚本宝典收集整理的这篇文章主要介绍了Yii2中Restful API原理实例分析,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实例分析了Yii2中Restful API原理。@L_406_0@给大家供大家参考,具体如下:
Yii2 有个很重要的特性是对 Restful API的默认支持, 通过短短的几个配置就可以实现简单的对现有Model的RESTful API
这里通过分析rest部分源码,简单剖析下yii2 实现 restful 的原理,并通过一些定制实现 对 关联模型的RESTful api 操作。
~ 代表 extends From 的关系
| | rest/ | | |-Action.PHP ~ `\yii\base\Action` | | |-Controller.PHP ~ `\yii\web\Controller` | | | |-ActiveController.PHP ~ `rest\Controller` | | |-serializer.PHP ~ `yii\base\component` | | |-UrlRule.PHP ~ `yii\web\ComposITeUrlRule` | | |-CreateAction.PHP ~ `rest\Action` | | |-DeleteAction.PHP ~ `rest\Action` | | |-indexAction.PHP ~ `rest\Action` | | |-OptionsAction.PHP ~ `rest\Action` | | |-UpdateAction.PHP ~ `rest\Action` | | |-ViewAction.PHP ~ `rest\Action`
Controller是 RESTful API 控制器类的基类
它在一个API请求的控制周期中一次实现了下面的步骤 1~5:
① 解析响应的内容格式 ② 校验请求方法 ③ 检验用户权限 ④ 限制速度 ⑤ 格式化响应数据
serializer)->serialize($data) verbs [] */ class Controller extends \yii\web\Controller { public $serializer = 'yii\rest\Serializer'; public $enableCsrfValidation = false; public function behaviors() { return [ 'contentNegotiator' => [ 'class' => ContentNegotiator::classname(),'formats' => [ 'application/json' => Response::FORMAT_JSON,'application/XMl' => Response::FORMAT_XML,],'verbFilter' => [ 'class' => VerbFilter::className(),'actions' => $this->verbs(),'authenticator' => [ 'class' => CompositeAuth::className(),'rateLimiter' => [ 'class' => RateLimiter::className(),] } public function verbs() { return []; } public function serializeData($data) { return Yii::createObject($this->serializer)->serialize($data); } public function afterAction($action,$result) { $result = parent::afterAction($action,$result); return $this->serializeData($result); } }
以上是脚本宝典为你收集整理的Yii2中Restful API原理实例分析全部内容,希望文章能够帮你解决Yii2中Restful API原理实例分析所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。