SCB*_*SCB 1 node.js graphql apollo-server apollostack
假设我有以下 typedef:
interface Node {
id: ID!
}
type Foo implements Node {
id: ID!
quantity: Int
}
type Bar implements Node {
id: ID!
name: String
}
Run Code Online (Sandbox Code Playgroud)
我发出的每一个ID,我都想以同样的方式处理。目前我需要一些解析器,如:
interface Node {
id: ID!
}
type Foo implements Node {
id: ID!
quantity: Int
}
type Bar implements Node {
id: ID!
name: String
}
Run Code Online (Sandbox Code Playgroud)
使用许多类型实现Node,这会导致大量代码重复,开发人员很容易忘记编码 id 的正确方法,或者忘记将它们全部编码。
有没有办法做这样的事情?
{
// ...
Foo: {
id: (root) => encodeId(root.id, root.type),
// ...
},
Bar: {
id: (root) => encodeId(root.id, root.type),
// ...
},
// ...
}
Run Code Online (Sandbox Code Playgroud)
这样Foo,Bar以及 的任何其他实现Node会继承id解析器吗?
对于仍然在这个问题上磕磕绊绊的任何人,您可以将inheritResolversFromInterfaces标志设置makeExecutableSchema为true.
在这里找到:https : //github.com/apollographql/graphql-tools/issues/762#issuecomment-385591309
Apollo 文档在这里:https : //www.apollographql.com/docs/apollo-server/api/apollo-server/#makeexecutableschema
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |