gpt4 book ai didi

node.js - 为接口(interface)编写 Apollo 解析器

转载 作者:太空宇宙 更新时间:2023-11-03 22:50:03 25 4
gpt4 key购买 nike

假设我有以下 typedef:

interface Node {
id: ID!
}

type Foo implements Node {
id: ID!
quantity: Int
}

type Bar implements Node {
id: ID!
name: String
}

我发出的每一个 ID,我都想以同样的方式处理。目前我需要一些解析器,例如:

{
// ...
Foo: {
id: (root) => encodeId(root.id, root.type),
// ...
},
Bar: {
id: (root) => encodeId(root.id, root.type),
// ...
},
// ...
}

由于许多类型都实现了 Node,这会导致大量代码重复,并且开发人员很容易忘记对 id 进行编码的正确方法,或者忘记将它们全部编码在一起.

有什么办法可以做到这样的事情吗?

{
// ...
Node: {
__resolveType: (root) => root.type,
id: (root) => encodeId(root.id, root.type)
},
// ...
}

这样 FooBarNode 的任何其他实现都会继承 id 解析器?

最佳答案

对于仍然在这个问题上遇到困难的人,您可以将 makeExecutableSchema 中的 inheritResolversFromInterfaces 标志设置为 true

在这里找到它:https://github.com/apollographql/graphql-tools/issues/762#issuecomment-385591309

Apollo 文档在这里:https://www.apollographql.com/docs/apollo-server/api/apollo-server/#makeexecutableschema

关于node.js - 为接口(interface)编写 Apollo 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50499900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com