реализован для записи данных. Но существует соглашение, согласно которому любые операции, вызывающие запись, должны отправляться явно через мутацию.
Помимо разницы в семантике, есть одно важное техническое отличие:
Поля запроса могут выполняться движком GraphQL параллельно, в то время как поля верхнего уровня Mutation ДОЛЖНЫ выполняться последовательно в соответствии со спецификацией:
Если операция является мутацией, результатом операции является результат выполнения набора выбора верхнего уровня мутации для типа объекта корня мутации. Этот набор выбора должен выполняться последовательно.
Ожидается, что поля верхнего уровня в операции мутации оказывают побочные эффекты на базовую систему данных. Последовательное выполнение предоставленных мутаций гарантирует от условий гонки во время этих побочных эффектов.
то есть, если я правильно понимаю, под сайд-эффектом понимается не видимый для пользователя результат, как выше ответили, а условно, запись в любую бд
то есть, если в случае авторизации через соцсеть мы возможно что то в бд запишем, значит это мутация
то же самое и с запросом поисковым на сайте
то есть, процентов 95 запросов - это мутации все-таки?
Ещё мутации не кешируются, что вызывает большую нагрузку на сервер.
Обсуждают сегодня