3.5 Restful路由

3.5.1 普通资源

Restful路由的核心是通过标准HTTP方法来操作/获取数据,所以设计路由的时候尽量以请求资源为核心。

ThinkPHP 5对Restful路由的支持比较完善,通过以下两种方式都可以定义Restful路由:

(1)编码定义

     Route::resource('news','index/news');

(2)配置定义

以news资源为例,ThinkPHP 5会自动注册7个路由规则,对应控制器不同的操作方法,如表3-2所示。

表3-2 路由规则说明

需要注意的是,Restful标准中一般有以下几种请求:

  •  GET:获取单个资源或资源列表,返回单个JSON或列表JSON。
  •  POST:创建资源,返回创建后的JSON。
  •  PUT:编辑资源,返回编辑后的JSON。
  •  DELETE:删除资源,返回204状态码和空响应体。

对资源路由设计有深入兴趣的读者可以学习慕课网上的视频《Restful API实战》(https://www.imooc.com/learn/811)。

3.5.2 嵌套资源

有时候资源是有上下级关系的,比如新闻的评论依赖于新闻,这时就需要用到嵌套路由定义。ThinkPHP 5对此也是支持的,例如: