Официальный учебник для GraphQL.js показывает схемы, построенные с использованием языка определения схем (SDL).Хотя SDL относится только к 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.Вы также можете взглянуть на спецификацию для полного объяснения и полных примеров.