我目前正在研究一种优雅的方式,对于我正在开发的REST API,表达对返回集合的GET请求的过滤器。我想将查询表达为“http://[...]?filter=expressions”,我将在其中评估表达式部分。我有一种感觉,灵活的方法会引发对简单查询DSL的需求吗?到目前为止,我发现的最接近正式规范的是
我想知道,如果ANTLR是要看的工具吗?但是,由于这应该是一个普遍的必需品,我想知道,如果有一些REST API查询标准DSL可用吗?
有点困惑的问候和thx的输入:)
答案 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中进行了讨论。