其他人如何在RESTful API中实现复杂的过滤?

时间:2013-10-24 13:45:02

标签: python rest filtering

我正在构建一个RESTful API,需要对其大量资源进行高级过滤。我需要支持几乎所有你在SQL where子句中可以做的事情。其他人如何在他们的API中实现此功能?

我做的研究越多,看起来我需要找到一个已经定义的语法(如SQL或RQL)的解析器,或者编写我自己的解析器,这是非常简单的。我在Python工作。

1 个答案:

答案 0 :(得分:3)

您正在寻找的是OData标准。 OData是一个REST + ATOM组合,包含一个URL内查询语言。

以下是Web服务上OData查询调用的示例:

http://services.odata.org/OData.svc/Category(1)/Products?$top=25&$orderby=name

此(虚构)查询在OData.svc网络服务中搜索按名称排序的类别1中的前25个产品。

有关OData的更多信息,请查看http://www.odata.org/

有Python的实现可用,但我不确定它们在这个阶段有多先进。查看http://code.google.com/p/odata-pyhttps://bitbucket.org/dowski/myohdata/src