有没有办法为两个或多个 GraphQL 服务生成聚合的 schema.json?
Posted
技术标签:
【中文标题】有没有办法为两个或多个 GraphQL 服务生成聚合的 schema.json?【英文标题】:Is there a way to generate the aggregated schema.json for two or more GraphQL services? 【发布时间】:2021-10-27 02:30:45 【问题描述】:我在一个联合下有几个 GraphQL 服务。 我启动一项服务并下载该特定服务的 schema.json:
apollo schema:download --endpoint=http://localhost:9001/graphql schema.json
我已经按照这个下载了 schema.json -> https://www.apollographql.com/docs/ios/downloading-schema/
类似:
apollo schema:download --endpoint1=http://localhost:9001/graphql --endpoint2=http://localhost:9002/graphql ... schema.json
【问题讨论】:
【参考方案1】:我认为没有办法用 apollo cli 做到这一点。但是,您可以执行以下操作:
apollo schema:download --endpoint=http://localhost:9001/graphql schema1.json
apollo schema:download --endpoint=http://localhost:9002/graphql schema2.json
在您可以使用任何您想要的合并工具合并两者之后。
另一种方法是 npm 包GraphQL Code Generator。您可以在此处指定更多架构来源。
【讨论】:
你能推荐我可以使用的任何好的合并工具吗? 我不熟悉架构的 json 结构,它还取决于您的环境。但是wiki.ubuntuusers.de/jq 在很多情况下是一个不错的选择。以上是关于有没有办法为两个或多个 GraphQL 服务生成聚合的 schema.json?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用 @apollo/react-hooks 访问多个 graphql 突变的选项
有没有办法将 Java 服务器中的 GraphQL 查询转换为 SPARQL 查询?
有没有办法从 protobuf 生成 GraphQL 模式?
有没有办法从 datamodel.prisma 文件生成 schema.graphql 文件?