如果想不按照yii2默认规定的那些写接口来,如何重写或者自定义呢?
我们可以在Controller中重写action()这个函数从而实现重写 a)因为访问的时候先去执行actions方法里面的对应独立操作,如果找不到再去找对应的内联操作。
b)actions方法的执行$actions = parent::actions();然后将$actions的需要重写的方法禁用(删除),然后return $actions 就没有这个方法了,所以就会执行内联操作actionIndex()这个方法,而我们的重写业务就是在这个actionIndex()方法中。其他的方法也是这样子重写。
如果我们想在自己定义不同的api接口方法呢?
那么我们可以通过配置实现,在main.php的主文件中 "extraPatterns"这个属性是额外模式配置
a)'GET versions' => 'version',代表获取接口版本,例如http://localhost/lianxi/XML/advanced/api/web/v1/users/versions ,对应的内联操作actionVersion();
c)'POST newusers' => 'add',代表添加一个用户,例如http://localhost/lianxi/XML/advanced/api/web/v1/users/newusers,对应的内联操作actionAdd();
我们只需要在控制器中实现这些方法,完成相应的逻辑业务,那么各个需要的接口就完成了。
在yii\rest\ActiveController.php中
这是默认的接口方法,那么如何重写呢?我们可以在Controller中重写action()这个函数从而实现重写 a)因为访问的时候先去执行actions方法里面的对应独立操作,如果找不到再去找对应的内联操作。
b)actions方法的执行$actions = parent::actions();然后将$actions的需要重写的方法禁用(删除),然后return $actions 就没有这个方法了,所以就会执行内联操作actionIndex()这个方法,而我们的重写业务就是在这个actionIndex()方法中。其他的方法也是这样子重写。
如果我们想在自己定义不同的api接口方法呢?
那么我们可以通过配置实现,在main.php的主文件中 "extraPatterns"这个属性是额外模式配置
a)'GET versions' => 'version',代表获取接口版本,例如http://localhost/lianxi/XML/advanced/api/web/v1/users/versions ,对应的内联操作actionVersion();
b)'GET searches/<id:\d+>' => 'search', 代表搜索一个指定id的用户,例如http://localhost/lianxi/XML/advanced/api/web/v1/users/searches/1,对应的内联操作actionSearches();
c)'POST newusers' => 'add',代表添加一个用户,例如http://localhost/lianxi/XML/advanced/api/web/v1/users/newusers,对应的内联操作actionAdd();
我们只需要在控制器中实现这些方法,完成相应的逻辑业务,那么各个需要的接口就完成了。