Mutacje GraphQL z działającymi przykładami

Mutacje GraphQL

Mutacje GraphQL: składnia, zmienne i typy input | We.Inc

Pisz mutacje GraphQL, które tworzą, aktualizują i usuwają dane: składnia operacji, $variables, typy obiektów input, co zwracać oraz jak wyglądają błędy i częściowy sukces.

Mutacja GraphQL to operacja, którą wysyłasz, aby zmienić dane. Zaczyna się od słowa kluczowego mutation, wywołuje pole typu Mutation w schemacie, przekazuje argumenty, zwykle jeden obiekt input trzymany w $variable, i wybiera, które pola wyniku mają wrócić. Pola mutacji najwyższego poziomu wykonują się jedno po drugim, nigdy równolegle.

Składnia mutacji w częściach

Użyj generatora poniżej, aby zobaczyć pełną mutację dla małej listy zadań: operację, JSON zmiennych, który Twój kod by z nią wysłał, oraz typową odpowiedź. Wpisz tytuł zadania i obserwuj, jak aktualizują się zmienne, aby skopiować żądanie gotowe do uruchomienia na pasującym schemacie.

Najczęściej zadawane pytania

Jaka jest różnica między query a mutacją?

Obie używają tej samej składni i obie mogą zwracać dane. Zgodnie z konwencją zapytania tylko czytają, a mutacje zapisują. Różni się też zasada wykonania: pola zapytania mogą być rozwiązywane równolegle, a pola mutacji najwyższego poziomu wykonują się po kolei.

Po co typ input zamiast zwykłych argumentów?

Obiekt input grupuje powiązane wartości w jeden otypowany argument, więc sygnatura mutacji pozostaje krótka, a później możesz dodawać opcjonalne pola bez zmieniania każdego wywołania.

Czy mogę wysłać mutację żądaniem GET?

Nie. Wytyczne GraphQL over HTTP pozwalają serwerom przyjmować GET tylko dla operacji query. Mutacje wysyła się jako POST, co dodatkowo trzyma zapisy z dala od cache przeglądarki i CDN.

Czy mutacja z kilkoma polami jest atomowa?

Nie. graphql.org zaznacza, że wykonanie sekwencyjne to nie transakcja bazodanowa. Jeśli drugie pole zawiedzie, zmiana z pierwszego zostaje, a odpowiedź zawiera dane dla jednego i błąd dla drugiego.

Co powinna zwracać mutacja usuwająca?

Specyfikacja zostawia to Tobie, ale pole nadal potrzebuje typu wyjściowego. Typowe wybory to id usuniętego obiektu, sam usunięty obiekt albo typ payload z id i flagą sukcesu.

Budowa mutacji

Zmienne i obiekty input

Błędy przy zapisie

Schemat stojący za przykładami

Typ Mutation i typy input

Typy input używają słowa kluczowego input. TaskPatch nie ma wymaganych pól, więc aktualizacja może wysłać tylko to, co się zmieniło.

Wysyłanie z JavaScriptu

Wyślij mutację przez POST z fetch

Dokument i zmienne podróżują jako dwa klucze jednej treści JSON. Sprawdzaj errors nawet przy statusie 200.

Dwa zapisy w jednej operacji

Aliasy pozwalają uruchomić to samo pole dwa razy. Drugie wykonuje się dopiero po zakończeniu pierwszego, ale jego błąd nie cofa pierwszego.

Tworzenie

Typ input grupuje pola nowego zadania. Selection set prosi o id nadane przez serwer.

Aktualizacja

id wskazuje, które zadanie zmienić, a input zawiera tylko zmieniane pola.

Usuwanie

Z usuniętego zadania nie ma już czego wybrać, więc ten schemat zwraca usunięte id jako zwykły skalar ID.

Generator mutacji

Wybierz mutację

Tytuł zadania

Mutacja

Zmienne (JSON)

Przykładowa odpowiedź

Kopiuj mutację

Kopiuj zmienne

Usuwanie potrzebuje tylko id, więc tytuł nie jest wysyłany.

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony