В GraphQL есть три типа операций :
- запрос - выборка только для чтения.
- мутация - запись с последующей выборка.
- подписка - долгоживущий запрос, который извлекает данные в ответ на исходные события.
Чтобы ваша схема поддерживала определенную операцию, она должна связать с ним определенный тип объекта. Каждый тип служит точкой входа root или для остальной части вашей схемы. Это то, что делает этот SDL - он показывает root тип операции , связанный с каждой операцией в схеме. Требуется только тип запроса - два других необязательны и могут быть опущены в определении. Каждый тип операции root должен быть типом объекта - он не может быть скаляром, перечислением и т. Д. c.
Обратите внимание, что по соглашению три типа называются Query
, Mutation
и Subscription
- но их можно было назвать как угодно. Например, у вас может быть такая схема:
schema {
query: Dog
}
type Dog {
breeds: [Breed!]!
}
Имя типа по большей части несущественно. Однако, если вы следуете стандартному соглашению (Query
, Mutation
и Subscription
), определение схемы можно вообще опустить. GraphQL просто предполагает, что тип Query
является типом запроса root и т. Д.