[英]Laravel REST API: Translating query string parameters into database search queries
我一直在使用Laravel 4和Eloquent为我的移动应用程序编写API。 我已经阅读了一些有关编写优秀API的细节,包括Phil的Build a Decent API和apigee的RESTful API Design 。
APIgee谈论查询字符串下的复杂性。 从查询字符串获取参数可能很麻烦,因为参数的数量和类型可能不同。 例如,为了得到一个黑色的狗,请求将是
http://url.com/api/dogs?color=black
黑色和年龄的狗会
http://url.com/api/dogs?color=black&age=16
$dogs = new Dog;
if(Input::get('color'))
$houses->where('color', '=', Input::get('color'));
if(Input::get('age'))
$houses->where('age', '=', Input::get('age'));
// Keep adding more for every filter you have :-|
$dogs = $dogs->get();
另一种更好的方法是使用DB列名作为参数名称,并使用foreach循环来构造查询。
但是,我想知道是否有这种方法的替代方案 ,或者这是否是处理查询字符串的标准方法。
我想如果您有3-4个参数,那么您可以像上面那样单独检查它们。
但是,如果你有很多参数,那么你可以使用foreach循环,采取预防措施,以避免从隐藏字段(如id)搜索..下面的例子..
$inputs = Input::except('id', 'something_cannot_be_used_for_searching');
foreach($inputs as $key => $input)
{
//Stmts
}
如果有任何其他问题,请告诉我。 谢谢 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.