是否有任何REST API查询标准/ DSL来表达GET URL中的复杂过滤器?

时间:2015-02-19 23:54:55

标签: api rest filtering antlr4 querydsl

我目前正在研究一种优雅的方式,对于我正在开发的REST API,表达对返回集合的GET请求的过滤器。我想将查询表达为“http://[...]?filter=expressions”,我将在其中评估表达式部分。我有一种感觉,灵活的方法会引发对简单查询DSL的需求吗?到目前为止,我发现的最接近正式规范的是

http://www.juniper.net/techpubs/en_US/junos-space-sdk/13.1/apiref/com.juniper.junos_space.sdk.help/html/reference/Commonbehav.html#step8

我想知道,如果ANTLR是要看的工具吗?但是,由于这应该是一个普遍的必需品,我想知道,如果有一些REST API查询标准DSL可用吗?

有点困惑的问候和thx的输入:)

2 个答案:

答案 0 :(得分:3)

OData 4(http://www.odata.org/)具有非常完整的查询语法,并支持带有导航,过滤,表达式等的E-R数据模型.MSFT Azure AD Graph API基于OData。唯一的缺点是完整的规格非常深。有一些开源实现,Apache Olingo(http://olingo.apache.org/)是支持Java客户端和服务器的实现。还有其他人。

答案 1 :(得分:1)

我偶然发现了QueryDSL,它提供了流畅的构建器来查询许多后端技术。

我不确定我是否喜欢将流畅的构建器直接映射到查询参数,但这种方法在blog posts引用的两个QueryDSL site中进行了讨论。