Это три типа операций, каждый из которых сопоставлен с корневым типом схемы:
Это три типа операций, каждый из которых сопоставлен с корневым типом схемы:
query GetPost { # чтение
post(id: "1") { title }
}
mutation AddComment { # запись; возвращает созданный объект, чтобы клиент обновил кэш
addComment(postId: "1", text: "Nice!") {
id
text
}
}
subscription OnComment { # реальное время: срабатывает при каждом добавлении комментария
commentAdded(postId: "1") {
id
text
}
}
Mutations принимают аргументы (часто объект input) и должны возвращать затронутые данные, чтобы клиент мог обновиться без второго запроса. Правило последовательности важно: две мутации в одном документе — deposit, затем withdraw — всегда выполняются именно в этом порядке, тогда как два поля query могут разрешаться одновременно.
Интервьюеры проверяют, знаете ли вы, что queries параллельны и без побочных эффектов, а mutations последовательны, и что для subscription нужен транспорт с состоянием (WebSocket/SSE). Возврат обновлённых данных из мутации — практическая деталь, отличающая тех, кто выпускал GraphQL в продакшн, от тех, кто только читал о нём.
Библиотека вопросов для IT-собеседований с подробными ответами — от Junior до Senior.
Поддержать