【发布时间】:2016-11-21 00:23:35
【问题描述】:
假设我有这样的MemberType
import {
GraphQLID,
GraphQLList,
GraphQLNonNull,
GraphQLObjectType,
GraphQLString
} from 'graphql'
import readPhoneNumbersByMemberId from '../resolvers/readPhoneNumbersByMemberId'
import PhoneNumberType from './PhoneNumberType'
const MemberType = new GraphQLObjectType({
name: 'Member',
fields: {
id: {
type: new GraphQLNonNull(GraphQLID)
},
firstName: {
type: new GraphQLNonNull(GraphQLString)
},
lastName: {
type: new GraphQLNonNull(GraphQLString)
},
phoneNumbers: {
type: new GraphQLList(PhoneNumberType),
resolve: readPhoneNumbersByMemberId
}
}
})
export default MemberType
还有一个像这样的PhoneNumberType
import {
GraphQLNonNull,
GraphQLObjectType,
GraphQLString
} from 'graphql'
const PhoneNumberType = new GraphQLObjectType({
name: 'PhoneNumber',
fields: {
value: {
type: new GraphQLNonNull(GraphQLString)
}
}
})
export default PhoneNumberType
还有一个像这样的QueryType
const QueryType = new GraphQLObjectType({
name: 'Query',
fields: {
readMembers: {
type: new GraphQLList(MemberType),
resolve: readMembers
}
}
})
现在,如果我查询 GraphQL 架构以检索成员,则将调用解析函数 readMembers 和 readPhoneNumbersByMemberId 从源获取数据。
是否可以对突变使用相同的机制?
【问题讨论】:
-
您的意思是使用与突变解析器相同的解析器逻辑?
-
我的意思是,是否可以利用相同的“解析器级联”来运行创建/更新语句?
-
我是否必须改为在根解析器上执行所有创建/更新语句?
标签: graphql graphql-js