У меня проблема с моим проектом, и я не могу найти решение в Интернете. Вот такая ситуация.
- У меня есть Союз (
DataResult
) двух типов (Teaser
&Program
) - У меня тип
Zone
с полемdata
(массивDataResult
) Teaser
&Program
имеют одинаковое полеtitle
с другим типом (String
противString!
)
Вот части схем Zone
, Teaser
и Program
:
type Program {
title: String
}
type Teaser {
title: String!
}
union DataResult = Teaser | Program
type Zone {
(...)
data: [DataResult!]
}
Когда я попытался запросить данные зоны, как описано в части запроса ниже, у меня возникла ошибка GraphQL.
zones {
...zoneFieldsWithoutData
data {
... on Program {
...programFields
}
... on Teaser {
...teaserFields
}
}
}
Вот ошибка:
Error: GraphQL error: Fields \"title\" conflict because they return conflicting types String and String!. Use different aliases on the fields to fetch both if this was intentional
Я не могу использовать псевдоним, потому что в спецификации требуется одно и то же имя атрибута для всех сущностей DataResult. Что я могу сделать ?
Более того, даже если я установлю тот же Тип для title
, я получу много предупреждений о «недостающих полях» в консоли ....
PS: я использую Vanilla Apollo в качестве клиента GraphQL (на стороне сервера)