
คุณสมบัติ:
Nested Mutations
Nested Mutations
ใน GraphQL การกลายพันธุ์จะถูกเปิดเผยเฉพาะใน root type เท่านั้น ผลที่ตามมาคือ root type จะขยายตัวอย่างมาก โดยมีฟิลด์ต่างๆ ที่ไม่มีความเกี่ยวข้องกันนอกจากเป็นการกลายพันธุ์ (ซึ่งเป็นเรื่องทางเทคนิค ไม่ใช่การตัดสินใจด้านการออกแบบอินเทอร์เฟซ)
Nested Mutations ทำให้ schema มีความสมเหตุสมผลและเรียกดูได้ง่ายขึ้น โดยเปิดให้ทำการกลายพันธุ์บน type ใดก็ได้ ไม่ใช่แค่ root type เท่านั้น นอกจากนี้ยังช่วยด้านประสิทธิภาพอีกด้วย เนื่องจากสามารถแก้ไขข้อมูลบนผลลัพธ์จากการกลายพันธุ์อื่นได้ จึงหลีกเลี่ยงความล่าช้าจากการรัน request หลายครั้ง
GraphQL query ต่อไปนี้แสดงให้เห็น nested 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
}
}
}
}
}
}
}