Это третья часть из пяти вводных статей о GraphQL и Apollo. Вы можете прочитать первую часть здесь, а вторую часть здесь. Я надеюсь, что к концу вы почувствуете себя комфортно с основополагающими концепциями GraphQL, а также с некоторыми практическими знаниями о создании сервера GraphQL. Если у вас есть отзывы, оставьте комментарий!

Сегодня мы рассмотрим следующую часть уравнения запроса — мутации.

В предложении:

Мутации — это запросы GraphQL, которые выполняют операцию записи, а затем выборки на сервере, что позволяет вам создавать или изменять базовые данные.

На самом деле в мутациях не так много всего. Они очень похожи на запросы, которые мы рассматривали ранее. Вот пример:

mutation {
   createUser(name: "Timothy Voice", email: "[email protected]") {
     id
     name
   }
 }

Вместо того, чтобы использовать ключ query (или полностью исключить его по умолчанию), мы сообщаем нашему серверу, что хотим выполнить операцию мутации.

Поскольку мутации — это операции записи и затем выборки (запросы — это просто операции выборки), наша мутация вернет данные вновь созданного пользователя с полями id и имя.

{
   "data": {
     "createUser": {
       "id": "123",
       "name": "Timothy Voice"
     }
   }
 }

Тяжелая работа выполняется на сервере, где вы определяете конкретную операцию, которая будет выполняться вашей мутацией. Мы увидим это в действии в следующем сегменте схем и серверов GraphQL в четвертой части.

Ресурсы:
Apollo Mutations: http://docs.apollostack.com/apollo-client/mutations.html