如果我想在REST中实现复杂的查询,该怎么办?

xia*_*o 啸 6 rest

我想实现一个REST服务,它能够解析查询,例如检索在startdate之后和endate之前创建的用户以及admin的特权.似乎标准REST实现只能通过ID进行查询.我是否需要自定义协议才能使这种查询成为可能或任何标准?

谢谢!

nat*_*ood 1

看一下Google 的 GDATA 协议。它非常RESTful,并且有一种非常好的方法来执行“复杂”查询,同时仍然保持干净的 URI。

http://code.google.com/apis/gdata/docs/2.0/reference.html#Queries

以下是他们的干净查询 URI 的示例

http://example.com/jo/-/Fritz/2006
Run Code Online (Sandbox Code Playgroud)

代替

http://example.com/jo?category=Fritz&category=2006
Run Code Online (Sandbox Code Playgroud)

来自谷歌:

此方法无需使用查询参数即可识别资源,并且会生成更清晰的 URI。我们为类别选择这种方法是因为我们认为类别查询将是最常见的查询。