Что означают 3 точки/точки/многоточия в запросе relay/graphql?
на relay docs содержат этот фрагмент:
query RebelsRefetchQuery {
node(id: "RmFjdGlvbjox") {
id
... on Faction {
name
}
}
}
что это ... on Faction
на синтаксис значит?
2 ответов
есть два использования ...
связанных фрагментов.
включение фрагмента по ссылке
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
.
Ах. Это объясняется здесь:
фрагменты потребляются с помощью оператора spread (...). Все области выбранный фрагмент будет добавлен в поле запроса по адресу на том же уровне, что и вызов фрагмента. Это происходит через несколько уровней разброса фрагментов.