Supergraph下一步
充分利用GraphOS
之后您创建一个supergraph,GraphOS Studio,阅读以下内容以了解如何充分利用它和整个GraphOS平台。
ⓘ 注意
您应该首先安装Rover CLI。否则,您可以按照页面上的任何顺序执行此页上描述的步骤。
首先,安装Rover CLI!
Rover CLI是交互GraphOS的主要命令行界面。您将在本地和CI环境中使用Rover执行对supergraph及其各个subgraph的各种操作。
安装Rover,然后返回此文章。
在本地运行您的supergraph
参见这篇文章。
Subgraph操作
更新子图模式
当你首次设置您的云supergraph时,GraphOS Studio将检索您现有GraphQL API的模式。您的现有API成为超graph中的第一个subgraph:
初次模式提取是一次性操作,以帮助您开始。当您的API模式更改时,工作室不会自动重新提取。这意味着您的路由器不知道这些更改。客户端无法在查询中包含任何新的模式字段,直到您的路由器知道这些更改!
无论您何时更新子图's的架构,您都需要使用 Rover CLI发布这些更改。了解发布子图架构。
在了解发布过程之后,您应该将其集成到您的CI工作流中。
添加另一个子图
一个超图最有力的功能之一是它可以将多个 GraphQL API合并到一个单独的图中:
在这种架构下,您组织中的不同团队可以为每个团队维护自己的子图。这有助于团队并行工作,因为他们不是都在同一个单一代码库上做出贡献。
1. 构建您的子图
请参考创建新的子图。
2. 将子图添加到您的超图中
请参考添加新的子图。
添加另一种变体
大多数超图都有多个变体,每个变体代表超图在不同的环境(例如,生产、预演、开发)中运行。
如果您的超图在多个环境中运行,您应该为每个环境创建不同的变体。
启用联盟功能
超图使用名为Apollo Federation的架构。当您的子图共同承担一些架构类型的责任时,而不是定义互斥的类型和字段,联盟功能最为强大。
💡 提示
为了充分利用联盟功能,您每个子图都需要使用符合Apollo Federation子图规范的GraphQL服务器库。幸运的是,许多流行的服务器库都支持!
- 要检查您的当前GraphQL服务器库是否支持子图规范,请参考此文章。
- 如果你的库支持该规范,请查阅其文档了解如何启用其联邦支持。对于Apollo Server,请参阅这篇文章。
- 如果你的库不支持该规范,请查阅库列表,以找到您在首选编程语言中的替代方案。
- 为所有您的subgraphs启用联邦支持并部署更新后的subgraphs到您的环境。
在做出这些更改后,您可以在您的subgraphs中开始使用强大的联邦功能,包括:
设置持续交付
每次您想要更改您的其中一个subgraphs时,您应该这样做:
- 验证您的更改不会破坏您的超级图或您现有的任何客户端。
- 要这样做,您需要为您的超级图设置模式检查。
- 在部署经过验证的更改时,始终在部署过程中将更新的subgraph模式发布到GraphOS。
- 关于这个基本示例,请参阅使用持续交付发布。
禁用客户端-subgraph通信
在超级图架构中,客户端不应直接查询您的各个subgraphs。相反,他们应该始终查询router!这意味着您的subgraphs可以(也应)拒绝来自除router之外任何来源的请求。
您如何选择配置这种访问控制取决于您的GraphQL服务器库和您的特定基础设施。
⚠️ 注意
确保在您开始拒绝直接请求之前,任何直接与您的API通信的现有客户端都已更新为与您的router通信!
有关更多信息,请参阅保护您的subgraphs。
工作室操作
配置通知
GraphOS可以通过几种不同的渠道(包括Slack和PagerDuty)发送各种类型的通知。这些通知可以包括每日指标报告、模式更改更新和实验性性能警报。设置通知。
邀请团队成员
如果您已创建工作室组织与您的团队合作,请从组织的成员标签邀请您的团队成员。
客户端操作
向您的客户端添加标识头
一个超级图变体的客户端页面允许您查看操作指标,按您的不同客户端进行分段:
为了充分利用此功能,您的每个客户端应用程序应在它们发送到您的路由器的每个请求中设置以下HTTP首部值:
apollographql-client-name
apollographql-client-version