Я работаю над «Начало работы с GraphQL.js» graphql.org. В учебнике метод graphql вызывается так:
graphql(schema, '{ hello }', root).then((response) => {
console.info(response);
});
Моя путаница со вторым параметром - '{ hello }'. Я действительно не знаю, на что я даже смотрю. Использует ли это сокращение значения свойства объекта Javascript, так что это действительно означает '{ hello: hello }'? Если да, то относится ли значение hello в этом объекте к функции распознавателя «привет»? А если дело в это, то для чего используется ключ в этом объекте?
Или это имеет какое-то значение в синтаксисе GraphQL, о котором я не знаю?
Я совсем обернулся.


официальный учебник для GraphQL.js показывает схемы, созданные с использованием языка определения схем (SDL). Хотя SDL специфичен для GraphQL, на самом деле это нет GraphQL. Фактическая часть «языка запросов» GraphQL имеет отдельный, хорошо документированный синтаксис — именно этот синтаксис используется для написания запросов, которые отправляются от клиента на сервер GraphQL. SDL, с другой стороны, используется для создания схемы, которая определяет возможности конкретной службы GraphQL.
Эти два синтаксиса имеют некоторое сходство (например, они оба используют фигурные скобки), но не являются взаимозаменяемыми.
Если мы определим схему GraphQL с помощью SDL следующим образом:
type Query {
hello: String
goodbye: String
}
Мы говорим, что у нашего корневого типа операции запроса есть два поля, которые могут запрашивать клиенты — hello и goodbye. Как клиент, мы можем запросить одно или оба поля, используя синтаксис GraphQL:
query {
hello
}
или...
query {
hello
goodbye
}
Любые лишние пробелы между токенами игнорируются, поэтому второй запрос эквивалентен следующему:
query { hello goodbye }
Кроме того, если мы используем операцию query, а не mutation или subscription, мы можем вообще отказаться от ключевого слова query, и GraphQL будет считать, что это запрос. Это известно как стенограмма запроса:
{
hello
goodbye
}
официальный учебник довольно хорошо объясняет, как создавать запросы GraphQL. Вы также можете взглянуть на спецификация для полного объяснения и полных примеров.
Я думаю, что у GraphQL есть собственный синтаксис, проверьте пример запроса здесь: https://graphql.org/learn/