怎么在yii2中实现restful api路由

  介绍

怎么在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路由