gpt4 book ai didi

graphql - 如何为自引用数据层次结构创建graphql模式?

转载 作者:行者123 更新时间:2023-12-04 03:11:06 28 4
gpt4 key购买 nike

这不起作用,因为类型在route字段定义中引用其自身:

  var routeType = new GraphQLObjectType({
name: 'MessageRoute',
fields: {
name: {
type: GraphQLString
},
routes: {
type: new GraphQLList(routeType),
resolve: (route) => {
return route.routes;
}
}
}
});

那我该怎么办呢?

最佳答案

通过将fields定义为返回对象而不是对象的函数,GraphQL类型可以引用自身(或引用文件中稍后定义的另一种类型)。页面完全解析后将调用该函数。

例如:

var routeType = new GraphQLObjectType({
name: 'MessageRoute',
fields: function () {
return {
name: {
type: GraphQLString
},
routes: {
type: new GraphQLList(routeType),
resolve: (route) => {
return route.routes;
}
}
};
}
});

或者,如果您使用的是ES6,则可以使用箭头功能来简化此操作:

var routeType = new GraphQLObjectType({
name: 'MessageRoute',
fields: () => ({
name: {
type: GraphQLString
},
routes: {
type: new GraphQLList(routeType),
resolve: (route) => {
return route.routes;
}
}
})
});

关于graphql - 如何为自引用数据层次结构创建graphql模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32551022/

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