首页 > 解决方案 > graphql 突变反应类型

问题描述

我们的服务中有很多突变,所有这些突变都返回相同类型的响应,例如:

export default new GraphQLObjectType({
  name: 'MessageResponse',
  fields: () => ({
    message: {
      type: GraphQLString,
    },
  }),
});

我的问题是我可以为所有这些突变返回这种类型作为最佳实践,还是我必须为每个突变创建单一类型?

标签: graphqlgraphql-js

解决方案


在这种情况下,您希望拥有不同类型的唯一原因是,如果您需要它resolve为您的消息字段实现不同的功能。如果不是这种情况,那么使用相同的类型是完全可以的。

另外,请记住,也可以只返回根级别的标量。例如,您的 Mutation 类型可能如下所示:

new GraphQLObjectType({
  name: 'Mutation',
  fields: () => ({
    someMutation: {
      type: GraphQLString,
    },
  }),
})

这并不总是一个好主意(例如,如果您预计将来需要返回其他信息)。但是,值得指出的是,这是可能的。


推荐阅读