创建RESTful复杂查询的最佳方法是什么?

and*_*cci 6 rest web-services

从REST服务检索复杂查询的最佳方法是什么?

假设我想X集合,应用过滤器和方程各一个,使用一些其他操作相结合的藏品和一个请求返回一个结果,应有尽有.

这是太复杂(大)把一切都在查询字符串,因为我可以结合300件多套(加上运营商和过滤器各一个).

我想过使用POST发送描述查询到像一个XML对象:

http://mydomain/collections/complexQuery
Run Code Online (Sandbox Code Playgroud)

它将返回一个唯一的ID,然后我可以使用GET来检索complexQuery结果:

http://mydomain/collections/complexQuery/{queryId}
Run Code Online (Sandbox Code Playgroud)

杰森S:

这就是主意.POST将采用查询的XML表示,其中"where"参数已经存在(它们可能太多).只有在GET到达时才会执行查询.我可以让查询对象可用一段时间并稍后删除它.

这是一个好的解决方案吗?我还在RESTful吗?

Jas*_*n S 2

如果您使用唯一的 ID,对我来说听起来很 RESTful。如果查询结果集很大,您可能需要包含一种询问结果集行 M - N 的方法,其中 M、N 是参数。

我想您独特的 ID 方法(带有存储在服务器上的查询定义状态)的一个优点是您可以使用查询的结果作为另一个查询的参数。甚至可能将 POSTING 查询的定义与查询的执行分开。