#apollo-federation #graphql #联盟 #网关

app graphgate

GraphGate是使用Rust实现的Apollo Federation

4个版本 (2个破坏性更新)

0.5.1 2021年3月26日
0.5.0 2021年3月24日
0.4.0 2021年3月23日
0.3.2 2021年3月23日

#1165 in HTTP服务器

MIT/Apache

120KB
2.5K SLoC

GraphGate

GraphGate是在Rust中实现的Apollo Federation

快速入门

由3个服务(账户、产品、评论)组成的GraphQL API。

docker run -p 8000:8000 scott829/graphgate-standalone-demo:latest

打开浏览器 http://127.0.0.1:8000

执行查询

{
    topProducts {
        upc name price reviews {
            body
            author {
                id
                username
            }
        } 
    }
}

执行订阅

subscription {
    users {
        id username reviews {
            body
        }
    }
}

常见问题解答

Apollo Federation做什么?

为了最大限度地利用GraphQL,您的组织应公开一个单一的数据图,该数据图提供统一接口,以查询任何组合的后备数据源。然而,使用单个、单体式的GraphQL服务器来表示企业规模的数据图可能会很具挑战性。

为了解决这个问题,您可以使用Apollo Federation将图的实际应用拆分为多个可组合的服务

与其他分布式GraphQL架构(如模式拼接)不同,Apollo Federation使用声明式编程模型,允许每个实现服务仅实现它负责的图的一部分。

为什么使用Rust来实现它?

Rust是我最喜欢的编程语言。它是安全且快速的,非常适合开发API网关。

GraphGate与Apollo Federation有什么区别?

我认为GraphGate的性能将大大提高(我还没有做基准测试,但很快就会添加),它支持订阅。

依赖关系

~85MB
~1.5M SLoC