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 月 22 日 |
#1330 in HTTP 服务器
在 2 个库中使用 (通过 graphgate-handler)
260KB
8K SLoC
GraphGate
GraphGate 是 Apollo Federation 的 Rust 实现。
快速入门
由 3 个服务(账户、产品、评论)组成的 GraphQL API。
docker run -p 8000:8000 scott829/graphgate-standalone-demo:latest
打开浏览器 https://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 架构(如 schema stitching)不同,Apollo Federation 使用声明式编程模型,允许每个实现服务仅实现您图中的责任部分。
为什么用 Rust 实现?
Rust 是我最喜欢的编程语言。它是安全的、快速的,非常适合开发 API 网关。
GraphGate 和 Apollo Federation 之间的区别是什么?
我想 GraphGate 的性能会更好(我还没有做基准测试,但很快就会添加),并且它支持订阅。
依赖关系
~5MB
~96K SLoC