
功能:
嵌套 Mutation
嵌套 Mutation
在 GraphQL 中,mutation 只在根类型上公开。因此,根类型变得极为臃肿,包含大量彼此之间没有任何关联的字段,唯一的共同点只是它们都是 mutation(这是技术层面的问题,而非接口设计决策)。
嵌套 mutation 通过允许在任意类型上执行 mutation,而不仅限于根类型,使 schema 更加逻辑清晰、易于浏览。它同样有助于提升性能——可以直接对另一个 mutation 的结果进行数据修改,从而避免执行多个请求带来的延迟。
以下 GraphQL query 演示了嵌套 mutation 的用法:
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
}
}
}
}
}
}
}