🎯 Definicja
W świecie GraphQL, Mutation to operacja służąca do modyfikacji danych na serwerze (Create, Update, Delete). To odpowiednik metod POST, PUT, DELETE w REST API. O ile Query służy tylko do czytania (“Daj mi dane”), Mutation mówi “Zmień coś”.
🔑 Kluczowe punkty
- Zapis: Służy do tworzenia, aktualizacji i usuwania rekordów.
- Sekwencyjność: Mutacje wykonują się po kolei (jedna po drugiej), żeby uniknąć wyścigów (Race Conditions). Queries mogą dziać się równolegle.
- Zwrot: Mutacja może (i powinna) zwrócić zmodyfikowany obiekt. (np. “Skasowałem usera X, oto jego ID i status”).
📚 Szczegółowe wyjaśnienie
W odróżnieniu od REST, gdzie URL i metoda HTTP (POST /users) definiują akcję, w GraphQL masz jeden endpoint, a w treści zapytania piszesz mutation { createProject(...) }.
W Ataccama ONE API, mutacje służą np. do:
catalogItemCreate(stwórz wpis w katalogu).runMonitoring(uruchom zadanie).publishEntity(zatwierdź zmiany).
💡 Przykład zastosowania
Chcesz dodać nowy komentarz do posta.
W REST wysyłasz POST /api/comments.
W GraphQL wysyłasz:
mutation {
addComment(postId: "123", content: "Super!") {
id
createdAt
author {
name
}
}
}Od razu dostajesz z powrotem ID nowego komentarza i nazwę autora, żeby wyświetlić to na ekranie bez dodatkowego zapytania.
📌 Źródła
- GraphQL Documentation - Mutations.
👽 Brudnopis
- Pamiętaj: Query = Read. Mutation = Write.