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

Is there any REST API query standard / DSL to express complex filters in GET URL?

我目前正在研究一种优雅的方式,用于我正在开发的 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 可用?

有点困惑的问候和感谢您的输入:)

OData 4 (http://www.odata.org/) has a very complete query syntax and supports the E-R data model with navigation, filtering, expressions, etc. The MSFT Azure AD Graph API is based on OData. The only downside is that the complete spec is pretty deep. There are a few open source implementations, Apache Olingo (http://olingo.apache.org/) 支持 Java 客户端和服务器。还有其他的。

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

我不确定我是否喜欢将流畅的构建器直接映射到查询参数的想法,但这种方法在两个 blog posts referenced by the QueryDSL site.

中进行了讨论