Использование типов ввода одного и того же объекта в разных мутациях

У меня есть тип ввода, который я хочу использовать для нескольких мутаций. Единственное отличие между его использованием от одной мутации к другой - обязательное свойство его полей.

Скажем, например, что у меня есть следующий тип ввода, который я использую в мутации создания:

input ObjectInput {
  name: String!
  description: String!
}

name а также description поля являются обязательными.

Что делать, если я хочу использовать тот же тип ввода в другой мутации, где description необязательно? Мне действительно нужно создать другой тип ввода только для того, чтобы исключить обязательное свойство поля?

1 ответ

Решение

Мне действительно нужно создать другой тип ввода только для того, чтобы исключить обязательное свойство поля?

Да.

Если между ними имеется более одного общего поля (одинаковые имена, точно такие же типы), вы можете разбить его на отдельный тип, который будет встроен в ваш тип входного объекта;

input ObjectIdentity {
  name: String!
}
input ObjectInput {
  identity: ObjectIdentity!
  description: String!
}

но это изменяет формат объекта (добавляет дополнительное поле объекта "личность") таким образом, что вы можете не захотеть.

Другие вопросы по тегам