query RebelsRefetchQuery {
node(id: "RmFjdGlvbjox") {
id
... on Faction {
name
}
}
}
Что означает этот синтаксис ... on Faction?
Ответ 1
Существует два вида использования ..., связанных с фрагментами.
Включение фрагмента по ссылке
query Foo {
user(id: 4) {
...userFields
}
}
fragment userFields on User {
name
}
Имеет ли смысл составлять поля из фрагмента в запрос внедрения:
query Foo {
user(id: 4) {
name
}
}
Обратите внимание, что фрагменты могут составлять другие фрагменты.
Встроенные фрагменты
Они могут использоваться для создания полей в зависимости от типа. Например:
query Foo {
profile(id: $id) {
url
... on User {
homeAddress
}
... on Business {
address
}
}
}
В этом примере сервер определит, следует ли возвращать поле homeAddress или address во время выполнения на основе того, является ли запрошенный объект User или Business.
Фрагменты потребляются с помощью оператора спреда (...). Все поля выбранный фрагментом, будет добавлен к выбору поля запроса в на том же уровне, что и вызов фрагмента. Это происходит через множественные уровни распространения фрагментов.