restQL - 微服务查询语言


MIT
跨平台
Clojure

软件简介

微服务查询语言 restQL 旨在简化客户端访问 RESTful 微服务的常用场景,包括并行调用和链式调用。

由拉丁美洲最大的电子商务公司 B2W 开发的 restQL,是为了避免 Falcor
GraphQL 这两个更为人熟知的数据查询和管理框架的一些限制而诞生的。

与其他查询语言类似,restQL 语句描述了要获取的资源,并用参数进行过滤。比如:

  from hero             
            with  
        name = "Restman"

默认情况下,查询是并行执行的,无须任何特殊语法。对于更复杂也更常见的场景,比如链式调用或者多路复用调用(如下例所示)也非常清晰直观。

  from hero
            with
                name = "Restman"
        from sidekick
            with
                hero = hero.id

对 restQL 查询的解析和响应由 restQL 服务端处理。restQL 服务端是用 Clojure 实现的,它充当着提交 restQL
查询的客户端和后端 API 之间的桥梁。所有的配置信息都是存在服务端的,以匹配资源名称和相应的调用端点(endpoint)。由于 restQL
服务端开放了标准的 REST 调用端点,所以不需要专门处理的客户端。