首页 > 作文

yii2的restful api路由实例详解

更新时间:2023-04-07 09:51:35 阅读: 评论:0

yii\rest\urlrule

使用yii\rest\urlrule来自动映射控制器的 restful 路由,简单快捷,缺点是必须得按规定好的方法名去写业务。

映置之不理什么意思射的规则如下,当然,你可以修改源码为你的习惯:

public $patterns = [  'put,patch {id}' => 'update',  'delete {id}' => 'delete',  'get,head {id}' => 'view',  'post' => 'create',  'get,head' => 'index',  '{id}' => 'options',  '' => 'options',];

除了被限制了http动词对应的方法名外,其他都很好用,比如pluralize是多么的优雅啊,可以自动解析单词的复数,laravel的话要一个个的去写,反而有些不方便了

'urlmanager'  => [  'enableprettyurl'   => true,  'showscriptname'   => fal,  'enmay和might的区别ablestrictparsing' => true,  'rules'        => [    [      'class'   => 'yii\rest\urlrule',      'controller' => [        'v1/ur',        'v1/news',        'routealias' => 'v1/box'      ],      'pluralize' => true    ],  ]]

自定义路由

注意我路由里很刻意的用了复数模式,但很鸡肋,因为一些单词的复数并不是简单的加个 s 就可以了。

'urlmanager'  => [  'enableprettyurl'   => true,  'showscriptname'   => fal,  'enablestrictparsing' => true,  'rules'        => [    // 利用 module 做个版本号也是可以的    'get <module:(v1愉快的旅行|v2)>/<controller:\w+>s'         => '<module>/<controller>/index',    'get <module:(v1|v2)>/<controller:\w+>s/<uid:\d+>'    => '<module>/<controller>/view',    'post <module:(v1|v2)>/<controller:\w+>s'        => '<module>/<controller>/create',    'put,patch <module:(v1|v2)>/<controller:\w+>s/<uid:\d+>' => '<module>/<controller>/update',    'delete <module:(v1|v2)>/<controller:\w+>s/<uid:\d+>'  => '<module>/<controller>/delete',    'options <module:(v1|v2)>/<controller:\w+>s'       => '<module>/<controller>/options',    '<controller:\w+>/<action:\信仰心得体会w+>'       => '<controller>/<action>',// normal    '<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>',// module    '/'                     => 'site/default',// default route  ]]

当然,这种高度动态的路由也可以写的像laravel一样半静态。

'get v1/children'         => 'v1/child/index','get v1/children/<uid:\d+>'    => 'v1/child/view','post v1/children'        => 'v1/child/create','put,patch v1/children/<uid:\d+>' => 'v1/child/update','delete v1/children/<uid:\d+>'  =>梅毒症状早期表现; 'v1/child/delete','options v1/children'       => 'v1/child/options',

如同laravel的如下

route::get("/v1/children", "childcontroller@index");route::post("/v1/children", "childcontroller@create");route::put("/v1/children/{uid}", "childcontroller@update");route::patch("/v1/children/{uid}", "childcontroller@update");route::delete("/v1/children/{uid}", "childcontroller@delete");route::options("/v1/children", "childcontroller@options");

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。

本文发布于:2023-04-07 09:51:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/0e27d174ea0b461940f226cdf6d1e81e.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:yii2的restful api路由实例详解.doc

本文 PDF 下载地址:yii2的restful api路由实例详解.pdf

标签:路由   复数   法名   单词
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图