Это то, что специфично для реализации на стороне сервера. Например, схема сервера может выглядеть примерно так:
type Mutation {
createPost(title: String! url: String!): Post
}
В этом случае, если вы используете переменные, в качестве клиента вы вынуждены использовать одну переменную на аргумент, так как GraphQL не поддерживает какой-то синтаксис типа "распространение". Однако схема может использовать тип входного объекта для группировки нескольких аргументов, например:
type Mutation {
createPost(input: CreatePostInput!): Post
}
input CreatePostInput {
title: String!
url: String!
}
В этом случае вы можете использовать одну переменную, которая является объектом:
mutation($input: CreatePostInput!) {
createPost(input: $input) {
title
url
}
}
Но, опять же, схема должна поддерживать такого рода использование. Как клиент, вы не можете это контролировать.