本地子图开发
使用 Rover CLI 运行本地超级图
当你在其中一个子图上工作时,你可以在你的开发环境中本地运行整个子图的版本。为此,你使用rover dev
命令。
💡 提示
该rover dev
命令监视你的每个子图模式(通过服务器内省或通过监视一个.graphql
文件)。每当它检测到更改时,它自动重新组合路由器的超级图模式并引发可能发生的任何错误。这让你可以快速迭代模式更改。
启动路由器
对于你超级图中的每个子图,你运行一次rover dev
。第一次运行它时,Rover在你的本地机器上启动一个路由器。
尝试运行如下示例子图的rover dev
:
rover dev --url https://flyby-locations-sub.herokuapp.com/ --name locations
您会看到以下输出
WARN: could not detect a schema in the current working directory. to watch a schema, pass the `--schema <PATH>` argument👂 polling https://flyby-locations-sub.herokuapp.com/ every 1 second⚠️ Do not run this command in production! ⚠️ It is intended for local development.🛫 starting a session with the 'locations' subgraph🎶 composing supergraph with Federation v2.1.2🚀 your supergraph is running! head to https://127.0.0.1:3000 to query your supergraph
您现在可以在浏览器中打开 https://127.0.0.1:3000
并在 Explorer 中运行针对您的本地 router 的测试查询!
您可以将上面的命令中的示例 子图 URL 和名称替换为您自己的子图信息。您可以提供远程 URL 或 localhost
URL。
添加子图
要将子图添加到您的本地 超级图,请在单独的终端窗口中再次运行 rover dev
。
您可以使用以下命令将该文章示例 超级图 中的子图添加进来:
rover dev --url https://flyby-reviews-sub.herokuapp.com/ --name reviews
该命令的输出类似于初次运行时的输出,但它包括以下类似的行
🐤 adding the 'reviews' subgraph to the session
这表明 rover dev
已经识别了您的现有 超级图 会话,并将此子图添加到其中。
现在,如果您在 Explorer 中运行测试查询,您会看到它们可以包含 字段,来自 locations
和 reviews
子图!
结束 rover dev
会话
要关闭您的本地 超级图,请使用 CTRL+C
停止您启动的第一个 rover dev
进程。这会自动终止同一会话中的所有二级 rover dev
进程。
ⓘ 注意
如果你停止一个次级 rover dev
进程,你的会话将保持活跃,并且 路由器's 模式将自动更新以反映已删除的 子图。
命令选项
有关 rover dev
选项的更多详细信息,请参阅 Rover 文档。