Restful 风格的设计在多个资源控制器时,如何与控制器、方法对应?
Laravel 的资源控制器在只有 1 个控制器时,很好理解,大概是这样的:
GET /photos 对应的是 PhotoController 的 index 方法,获取所有照片
GET /photos/{photo} 对应的是 PhotoController 的 show 方法,获取单张照片
现在如果多出一个控制器 CategoryController
GET /categories 对应的是 CategoryController 的 index 方法,获取所有分类
GET /categories/{category} 对应的是 CategoryController 的 show 方法,获取单个分类
我如果要获取分类 1 下的所有照片,按照 Restful Api 的设计:
路由是 /categories/1/photos
此时这个路由应该对应 CategoryController 的 getPhotos 方法
还是对应 PhotoController 的 getPhotos 方法?
如果对应 PhotoController 的 getPhotos 方法,是不是可以设计成 photos?category=1 更合适?
这样的话,PhotoController 就不需要 getPhotos 方法了,直接就对应 index 方法,然后在index 方法里根据 category 参数进行筛选照片即可。
以上情况应该如何选择?
关于 LearnKu
推荐文章: