我正在构建一个通用API,该API提供对大量不同数据集的访问权限,并且我想避免为每种数据类型创建特定的查询API。即需要手动实现name="Joe"
的Users端点。我希望用户能够使用某种查询语言(例如带谓词的SQL或类似语言)过滤这些数据集。数据集在不断增长,我们需要一种通用的方式来形成查询谓词。
当我使用javascript时,我使用https://github.com/agershun/alasql对内存中的对象进行简单的谓词。
我正在Scala中寻找类似的东西。它不需要是SQL,可以是JSON或其他DSL。
我查看了方解石,并能够在数据上做WHERE谓词,但是却花了很多时间进行黑客攻击。 Calcite库非常大且复杂。它需要实例化许多对象才能生成一个查询。我不想将这种沉重的依赖关系拖入项目中。