我正在使用由Apollo提供的GraphQL工具/库。
有可能将远程GraphQL模式合并成嵌套结构吗?
假设我有n个远程模式,并且我想将不同模式中的Query,Mutation和Subscription合并到单个模式中,除了每个远程模式都被放置在其自己的类型下之外。
假设我们有一个名为MenuX的远程模式:
我们可以看到,在
有可能将远程GraphQL模式合并成嵌套结构吗?
假设我有n个远程模式,并且我想将不同模式中的Query,Mutation和Subscription合并到单个模式中,除了每个远程模式都被放置在其自己的类型下之外。
假设我们有一个名为MenuX的远程模式:
type Item {
id: Int!
description: String
cost: Int
}
type Query {
items: [Item]
}
还有一个名为MenuY
的远程模式,其中包括:
type Item {
id: Int!
name: String
cost: Int
}
type Query {
items: [Item]
}
我希望将模式合并为一个单一的模式,但仍保留它们各自的类型。以下是一个人为制造的例子:
type MenuXItem {
id: Int!
description: String
cost: Int
}
type MenuYItem {
id: Int!
name: String
cost: Int
}
type MenuXQuery {
items: [MenuXItem]
}
type MenuYQuery {
items: [MenuYItem]
}
type Query {
MenuX: MenuXItem
MenuY: MenuYItem
}
我们可以看到,在
Query
类型下,它包含两个新类型,这些类型包含了远程模式中的查询类型。使用来自graphql-tools
的转换器将模式MenuX
的Item
重命名,同样地,模式MenuY中的Item
也被转换了。
但是,是否可能同时改变结构呢?
实际上,我们需要处理每个模式中数百种类型,理想情况下,我不希望污染根类型和GraphiQL中的内省文档。