我面临一个设计问题,我们的许多 API 都使用各种自制的 Query DSL 构造来提供高级过滤和响应排序。
我想做的是基于我们的应用程序开发人员更熟悉的方案提供跨多个 API 的标准 DSL,并在我们的 API 之间带来一些一致性。
自然,这会带来一些复杂的解析和转换 DSL 查询到我们的遗留后端。但是,我希望通过采用现有框架来避免必须自己编写所有查询解析逻辑来快速开始。
有没有人有使用任何与 Apigee 平台兼容的开源 DSL 框架的经验?
我没有使用 Apigee 的经验,但Querydsl可以用作查询 DSL 的基础。
它提供了一个基本查询模型,可以对其进行调整和扩展以适应自定义查询/存储目标。
这个答案是有偏见的,因为我参与了 Querydsl 项目。
如果您的后端是 MS Stack - 那么我建议您使用 ODATA 探索ODATA和StackOverFlow 示例。我发现这非常强大。
我假设您确实希望用户输入直接查询 - 我的意思是 HTTP 请求中的 SQL。REST 本身是一个很好的基于实体的查询协议——一个好的REST API 本身对于用户获取实体的思维导图非常有用。
这是我需要的灵感。谢谢!