介绍
怎么在yii2中实现restful api路由?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
<强> yii \ \ UrlRule休息强>
使用yii \ \ UrlRule休息来自动映射控制器的restful路由,简单快捷,缺点是必须得按规定好的方法名去写业务。
映射的规则如下,当然,你可以修改源码为你的习惯:
public patterns 美元;=,( & # 39;才能说,PATCH {id} & # 39;,=祝辞,& # 39;更新# 39; & # 39;才能DELETE {id} & # 39;,=祝辞,& # 39;删除# 39; & # 39;才能得到,HEAD {id} & # 39;,=祝辞,& # 39;视图# 39; & # 39;才能发布# 39;,=祝辞,& # 39;创建# 39; & # 39;才能得到,头# 39;,=祝辞,& # 39;指数# 39; & # 39;才能{id} & # 39;,=祝辞,& # 39;选项# 39; & # 39;才能& # 39;,=祝辞,& # 39;选项# 39; ];
除了被限制了HTTP动词对应的方法名外,其他都很好,用比如兼职是多么的优雅啊,可以自动解析单词的复数,laravel的话要一个个的去写,反而有些不方便了
& # 39; urlManager& # 39;,,=祝辞,( & # 39;才能enablePrettyUrl& # 39;,,,=祝辞,真的, & # 39;才能showScriptName& # 39;,,,=祝辞,假的, & # 39;才能enableStrictParsing& # 39;,=祝辞,真的, & # 39;才能规则# 39;,,,,,,,,=祝辞,( ,,,( ,,,,,& # 39;类# 39;,,,=祝辞,& # 39;剩下yii \ \ UrlRule& # 39; ,,,,,& # 39;控制器# 39;,=祝辞,( ,,,,,,,& # 39;v1/用户# 39; ,,,,,,,& # 39;v1/新闻# 39; ,,,,,,,& # 39;routeAlias& # 39;,=祝辞,& # 39;v1/盒# 39; ,,,,,, ,,,,,& # 39;兼职# 39;,=祝辞,真的 ,,,, ,,) )
<>强自定义路由强>
注意我路由里很刻意的用了复数模式,但很鸡肋,因为一些单词的复数并不是简单的加个年代就可以了。
& # 39; urlManager& # 39;,,=祝辞,( & # 39;才能enablePrettyUrl& # 39;,,,=祝辞,真的, & # 39;才能showScriptName& # 39;,,,=祝辞,假的, & # 39;才能enableStrictParsing& # 39;,=祝辞,真的, & # 39;才能规则# 39;,,,,,,,,=祝辞,( ,,,//,利用,module 做个版本号也是可以的 ,,,& # 39;GET & lt;模块:(v1 | v2)祝辞/& lt;控制器:\ w +祝辞& # 39;,,,,,,,,,=祝辞,& # 39;& lt; module>/& lt; controller>/指数# 39; ,,,& # 39;GET & lt;模块:(v1 | v2)祝辞/& lt;控制器:\ w +在s/& lt; uid: \ d +祝辞& # 39;,,,,=祝辞,& # 39;& lt; module>/& lt; controller>/视图# 39; ,,,& # 39;POST & lt;模块:(v1 | v2)祝辞/& lt;控制器:\ w +祝辞& # 39;,,,,,,,,=祝辞,& # 39;& lt; module>/& lt; controller>/创建# 39; ,,,& # 39;说,PATCH & lt;模块:(v1 | v2)祝辞/& lt;控制器:\ w +在s/& lt; uid: \ d +祝辞& # 39;,=祝辞,& # 39;& lt; module>/& lt; controller>/更新# 39; ,,,& # 39;DELETE & lt;模块:(v1 | v2)祝辞/& lt;控制器:\ w +在s/& lt; uid: \ d +祝辞& # 39;,,=祝辞,& # 39;& lt; module>/& lt; controller>/删除# 39; ,,,& # 39;OPTIONS & lt;模块:(v1 | v2)祝辞/& lt;控制器:\ w +祝辞& # 39;,,,,,,,=祝辞,& # 39;& lt; module>/& lt; controller>/选项# 39; ,,,& # 39;& lt;控制器:\ w +祝辞/& lt;行动:\ w +祝辞& # 39;,,,,,,,=祝辞,& # 39;& lt; controller>/& lt; action> & # 39;//,正常 ,,,& # 39;& lt;模块:\ w +祝辞/& lt;控制器:\ w +祝辞/& lt;行动:\ w +祝辞& # 39;,=祝辞,& # 39;& lt; module>/& lt; controller>/& lt; action> & # 39;//模块 ,,,& # 39;/& # 39;,,,,,,,,,,,,,,,,,,,,,=祝辞,& # 39;网站/违约# 39;//default 路线 ,,) )
当然,这种高度动态的路由也可以写的像laravel一样半静态。
& # 39; GET v1/孩子# 39;,,,,,,,,,=祝辞,& # 39;v1/孩子/指数# 39; & # 39;GET  v1/孩子/& lt; uid: \ d +祝辞& # 39;,,,,=祝辞,& # 39;v1/孩子/视图# 39; & # 39;POST v1/孩子,,,,,,,,,=祝辞,& # 39;v1/孩子/创建# 39; & # 39;把PATCH v1/孩子/& lt; uid: \ d +祝辞& # 39;,=祝辞,& # 39;v1/孩子/更新# 39; & # 39;DELETE  v1/孩子/& lt; uid: \ d +祝辞& # 39;,,=祝辞,& # 39;v1/孩子/删除# 39; & # 39;OPTIONS v1/孩子,,,,,,,,=祝辞,& # 39;v1/孩子/选项# 39;
如同laravel的如下
路线::获得(“/v1/children",,“ChildController@index"); null null null null null怎么在yii2中实现restful api路由