![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=1739304342-tyjy1wojW606ctR49ooOBO7gEWbR245r-0-faf5c0cd63c7a519a90396cd94603f72)
以news资源为例,ThinkPHP 5会自动注册7个路由规则,对应控制器不同的操作方法,如表3-2所示。
表3-2 路由规则说明
![](https://epubservercos.yuewen.com/A59904/15825992005220406/epubprivate/OEBPS/Images/Figure-T29_36946.jpg?sign=1739304342-s21qtCbfNA2LI6t3KySMjjEyIXBZ47LP-0-d6cb4effe19a7e689726a8eab2ff7f3e)
需要注意的是,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=1739304342-jRWkYpMqSaKtiHE96u1Fys0uOVG1gEg9-0-c5191ba6e0fe12020fbd4f87b724244f)