
Возможность:
Вложенные мутации
Вложенные мутации
Мутации в GraphQL доступны только на корневом типе. В результате корневой тип становится чрезмерно раздутым — он содержит поля, не имеющие между собой ничего общего, кроме того что являются мутациями (что представляет собой техническое соображение, а не решение в области дизайна интерфейса).
Вложенные мутации делают схему более логичной и удобной для навигации, позволяя выполнять мутации на любом типе, а не только на корневом. Они также улучшают производительность, позволяя изменять данные на основе результата другой мутации и тем самым избегая задержки при выполнении нескольких запросов.
Этот GraphQL-запрос демонстрирует вложенную мутацию:
mutation {
createPost(input: {
title: "First title"
}) {
status
postID
post {
update(input: {
title: "Second title",
contentAs: { html: "Some content" }
}) {
status
post {
title
content
addComment(input: {
commentAs: { html: "My first comment" }
}) {
status
commentID
comment {
content
date
}
}
}
}
}
}
}