用 Laravel 搭建一套 RESTful 风格的 API 时,get 方式的请求到底如何传参才够优雅?
如题。最近打算用 Laravel 搭建一套 restful 风格的 API 服务,由于 restful 风格是通过请求动作来区分操作资源的类型,那么有一个问题一直不能释怀:
大多手册或者博客在介绍 restful 风格时都在举这样的例子:
GET 方式请求资源时,比如 api.xxx.com/users/1
但是我好奇,难道实际情况中获取资源只有少到可怜的一个参数这么简单吗?如果我需要通过 N 个条件去查询资源呢?而且这些条件还可能不是必须的,我该怎么办?比如一个搜索接口。
我是这样:
Route::get('users/{name}/{status}/{rank}/{page}/{pagesize}', 'Controller@users');
还是这样:
Route::get('users/name/{name}/status/{status}/rank/{rank}/{page}/{pagesize}', 'Controller@users');
感觉看起来都不优雅。况且以上两种情况都还是参数必填,我既然要搜索,那当然可以有某个或者某几个参数为空,所以根本无法满足需求。
在此请教大家,这样的情况,应该如何处理会比较舒服?我相信 Laravel 应该有更优雅的方式,遗憾的是我在文档中没有查到。望大家不吝赐教~
推荐文章: