用于搜索,过滤和分页的MeanJS restful API

时间:2015-03-12 12:45:00

标签: mongodb rest http get meanjs

我有一个客户端的搜索格式,需要在服务器控制器上翻译为:

Item.find(search)
.limit(limit).skip(skip)
.exec(function(err, items) 
     {return return res.jsonp(items);  });

其中:

search = {"tiltle" : new RegExp(<some_token>, "i"), 
          "price" : {"$lt" : <price_limit>},
           "labels" : {"$in" : <labels_list>} }
limit = <limit_pagination>
skip = <skip_pagination>

所有<x>变量都应来自客户端。

我可以为上述搜索查询定义哪个API?

选项1

将所有变量作为url查询参数:

GET /items?skip=100&limit=50&pricelt=50&labels=ONE,TWO&title=titl

但是将每个字段添加到url似乎不是通用解决方案(客户端控制器和服务器控制器都必须指定这些字段)。

选项2

为搜索创建单独的POST查询:

POST /items/search?skip=100&limit=50
{"title" : new RegExp("titl", "i"), 
          "price" : {"$lt" : 50},
           "labels" : {"$in" : ["ONE","TWO"]} }

这似乎打破了RESTful apis的简单性。 (无法覆盖POST /items因为它是为创建项目而保留的。

选项3

使用正文获取请求:

GET /items?skip=100&limit=50
{"title" : new RegExp("titl", "i"), 
          "price" : {"$lt" : 50},
           "labels" : {"$in" : ["ONE","TWO"]} }

但这似乎是break the HTTP 1.1 protocol

0 个答案:

没有答案