Фрагменты существуют только в запросах;Вы не можете использовать их на языке схемы.
В вашем примере ответ должен включать ссылку на возвращаемую User
:
type GetUserByUsernameResponse {
user: User
errors: [Error]!
}
Когда вы делаете запрос,тем не менее, вы можете включить фрагмент.
query WhoAreYou($username: String!) {
getUserByUsername(input: {username: $username}) {
user { ...UserFragment }
errors { message }
}
}
fragment UserFragment on User {
username
information
pictureUrl
}
Фрагменты, как правило, несколько более полезны, если у вас есть причина запрашивать одни и те же поля для одного и того же типа объекта несколько раз в одном запросе, или если у вас естьклиентская библиотека, которая способна выбирать фрагменты из «библиотеки» запросов GraphQL, которые вы будете использовать в нескольких местах.(Например, гем Ruby graphql-client может быть сконфигурирован с файлом многих запросов, и вы можете сделать из него конкретный запрос по имени операции, и он сделает запрос с этой операцией и любыми фрагментами, на которые он ссылается, так что выможет повторно использовать одни и те же фрагменты в нескольких запросах.)