![ThinkPHP 5实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/303/27563303/b_27563303.jpg)
上QQ阅读APP看书,第一时间看更新
3.5 Restful路由
3.5.1 普通资源
Restful路由的核心是通过标准HTTP方法来操作/获取数据,所以设计路由的时候尽量以请求资源为核心。
ThinkPHP 5对Restful路由的支持比较完善,通过以下两种方式都可以定义Restful路由:
(1)编码定义
Route::resource('news','index/news');
(2)配置定义
![](https://epubservercos.yuewen.com/A59904/15825992005220406/epubprivate/OEBPS/Images/Figure-P29_36945.jpg?sign=1739286930-bxSN8Nscw0HeJlqmATObk09KRG87upCA-0-0869ffa0996868e1d7191294e497414b)
以news资源为例,ThinkPHP 5会自动注册7个路由规则,对应控制器不同的操作方法,如表3-2所示。
表3-2 路由规则说明
![](https://epubservercos.yuewen.com/A59904/15825992005220406/epubprivate/OEBPS/Images/Figure-T29_36946.jpg?sign=1739286930-Hv3RyTFvUKvswlRiDhAs99ncwc8mip0u-0-d1517f6afdc7b20eb536658480465739)
需要注意的是,Restful标准中一般有以下几种请求:
- GET:获取单个资源或资源列表,返回单个JSON或列表JSON。
- POST:创建资源,返回创建后的JSON。
- PUT:编辑资源,返回编辑后的JSON。
- DELETE:删除资源,返回204状态码和空响应体。
对资源路由设计有深入兴趣的读者可以学习慕课网上的视频《Restful API实战》(https://www.imooc.com/learn/811)。
3.5.2 嵌套资源
有时候资源是有上下级关系的,比如新闻的评论依赖于新闻,这时就需要用到嵌套路由定义。ThinkPHP 5对此也是支持的,例如:
![](https://epubservercos.yuewen.com/A59904/15825992005220406/epubprivate/OEBPS/Images/Figure-P30_36948.jpg?sign=1739286930-lj7jth0jZzyIZfT6XmEVIHIX1aDyeiZt-0-7e508ab84bf4d5a764467fffe8cad71a)