
기능:
중첩 뮤테이션
중첩 뮤테이션
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
}
}
}
}
}
}
}