在一个laravel中组合多个API

时间:2017-05-07 15:25:57

标签: php api eloquent laravel-5.4

本月我开始学习laravel,研究API,只需控制器和模型。

我有一些API,比如按名称,类型,区域,评级,评论进行搜索 每个回应这些网址

本地主机:8000 / API /销售商/名称/测试

本地主机:8000 / API /销售商/类型/学生

本地主机:8000 / API /销售商/面积/亚

我在这里面临一个大问题,我有大约10个字段可以单独搜索,但问题是它们可以在一个查询中搜索,如名称和类型,名称和区域,名称类型和区域,名称类型区域和评论。将有许多组合。

我现在在控制器中做了一个不同的方法。但我觉得这种方式很难为每个查询制作不同的方法。

我的问题是,有没有办法简单地合并这些查询,比如有一个相对调用不同方法的方法。 比如Name Type和Area,方法调用Name首先得到一些结果,现在调用结果类型方法,调用它的结果调用Area方法。

现在我的api.php看起来像这样

tmp

和控制器文件是

Route::get('/vendors/name/{name}','VendorsController@ByName');
Route::get('/vendors/type/{type}','VendorsController@ByType');
Route::get('/vendors/area/{area}','VendorsController@ByArea');
Route::get('/vendors/rating/{rating}','VendorsController@ByRating');
Route::get('/vendors/reviews/{reviews}','VendorsController@ByReviews');

Route::get('/vendors/name/{name}/type/{type}','VendorsController@ByNameType');
Route::get('/vendors/name/{name}/area/{area}','VendorsController@ByNameArea');
Route::get('/vendors/type/{type}/area/{area}','VendorsController@ByTypeArea');

Route::get('/vendors/name/{name}/type/{type}/area/{area}','VendorsController@ByNameTypeArea');

0 个答案:

没有答案