
Funkcja:
Zagnieżdżone Mutacje
Zagnieżdżone Mutacje
Mutacje są eksponowane wyłącznie na typie głównym w GraphQL. W konsekwencji typ główny staje się nadmiernie rozbudowany, zawierając pola, które nie mają ze sobą nic wspólnego poza tym, że są mutacjami (co jest kwestią techniczną, a nie decyzją projektową dotyczącą interfejsu).
Zagnieżdżone mutacje sprawiają, że schemat jest bardziej logiczny i przejrzysty, umożliwiając wykonywanie mutacji na dowolnym typie, a nie tylko na typie głównym. Poprawiają również wydajność, pozwalając na modyfikowanie danych w wyniku innej mutacji, co pozwala uniknąć opóźnień wynikających z wykonywania wielu zapytań.
To zapytanie GraphQL demonstruje zagnieżdżoną mutację:
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
}
}
}
}
}
}
}