REST POST json body支持复杂的查询建议

时间:2016-08-21 00:11:34

标签: json rest

我对REST很新。我们所有的遗留Web服务都是基于SOAP的企业(ORACLE或DB2)数据库。我们现在转向REST / couchbase。

我们的团队正在研究实施复杂的查询方法。我们已经使用GET实现了简单的查询方法,例如GET返回所有条目,GET / 067e6162-3b6f-4ae2-a171-2470b63dff00将返回067e6162-3b6f-4ae2-a171-2470b63dff00的条目。

我们希望支持一种支持接收多个查询参数的查询方法,例如ID和日期范围列表。 Ids的数量可以达到几千个,因此我们意识到我们无法在GET HTTP头中传递这些查询参数,因为标头大小有限制。

我们开始考虑将查询参数传递给POST请求的JSON主体。例如,我们可以让客户端在几千个ID中作为数组传递并传入日期范围,因此我们将每个查询参数/过滤器作为一个对象。然后JSON主体将是一个对象数组。例如:

{
  "action" : "search",
   "queryParameters" : {
  [ 
   {
  “operation”: “in”,
  "key" : "name.of.attribute.Id",
  "value" : "[{ "id: "067e6162-3b6f-4ae2-a171-2470b63dff00"}, {"id": "next id"....}],
  },
 {
“operation”: “greater”,
  "key" : "name.of.attribute “,
   "value" :  "8/20/2016"
},
{
“operation”: “less”,
  "key" : "name.of.attribute “,
   "value" :  "8/31/2016"
  }
 ]
}

然后后端代码将接收POST并读取正文。它会看到动作是一个搜索,然后查找列表中属于日期范围> 1的ID列表中的任何条目。 2016年8月20日和< 2016年8月31日。

我一直试图在网上寻找有关如何最好地为复杂查询构建JSON主体的提示/最佳实践,但却找不到多少。所以任何提示,指导或建议都将不胜感激。

感谢。

0 个答案:

没有答案