在不同的突变中使用相同对象的输入类型

Posted

技术标签:

【中文标题】在不同的突变中使用相同对象的输入类型【英文标题】:Using input types of the same object in different mutations 【发布时间】:2018-12-24 11:30:51 【问题描述】:

我有一个输入类型,我想在多个突变中使用它。它从一种突变到另一种突变的唯一区别是其字段的强制属性。

例如,假设我在创建突变中使用了以下输入类型:

input ObjectInput 
  name: String!
  description: String!

namedescription 字段均为必填字段。

如果我想在 description 是可选的另一个突变中使用相同的输入类型怎么办?我真的必须创建另一个输入类型来消除字段的强制属性吗?

【问题讨论】:

【参考方案1】:

我真的必须创建另一个输入类型来消除字段的强制属性吗?

是的。

如果有多个共同的字段(相同的名称,完全相同的类型),那么您可以将其分解为一个单独的类型,嵌入到您的输入对象类型中;

input ObjectIdentity 
  name: String!

input ObjectInput 
  identity: ObjectIdentity!
  description: String!

但这会以您不希望的方式更改对象格式(添加额外的“身份”对象字段)。

【讨论】:

以上是关于在不同的突变中使用相同对象的输入类型的主要内容,如果未能解决你的问题,请参考以下文章

使用输入对象的graphql突变

对象作为突变中的输入变量:GraphQL - Apollo - React

在 GraphQL 中重用输入类型作为片段 [重复]

HotChocolate 突变输入类型使用 int 而不是 ID

如何删除 Graphene Django 突变查询(中继)中的嵌套输入对象?

将输入类型用于 graphql 查询是一种不好的做法吗?