GraphQL-mutations, met werkende voorbeelden

GraphQL-mutations

GraphQL-mutations: syntax, variabelen en input-types | We.Inc

Schrijf GraphQL-mutations die data aanmaken, wijzigen en verwijderen: operatiesyntax, $variables, input-objecttypes, wat u teruggeeft en hoe fouten en gedeeltelijk succes eruitzien.

Een GraphQL-mutation is de operatie die u stuurt om data te wijzigen. Hij begint met het sleutelwoord mutation, roept een veld aan op het Mutation-type van het schema, geeft argumenten mee, meestal één input-object in een $variable, en kiest welke velden van het resultaat terugkomen. Mutation-velden op het hoogste niveau draaien na elkaar, nooit parallel.

Mutation-syntax in onderdelen

Gebruik de bouwer hieronder om een volledige mutation te zien voor een kleine takenlijst: de operatie, de variabelen-JSON die uw code ermee zou meesturen en een typische response. Typ een taaktitel en zie de variabelen bijwerken, zodat u een verzoek kunt kopiëren dat klaar is om tegen een passend schema te draaien.

Veelgestelde vragen

Wat is het verschil tussen een query en een mutation?

Beide gebruiken dezelfde syntax en beide kunnen data teruggeven. Volgens afspraak lezen queries alleen en schrijven mutations. Ook de uitvoeringsregel verschilt: queryvelden mogen parallel worden opgelost, terwijl mutation-velden op het hoogste niveau na elkaar draaien.

Waarom een input-type gebruiken in plaats van losse argumenten?

Een input-object bundelt samenhangende waarden in één getypeerd argument, zodat de signatuur van de mutation kort blijft en u later optionele velden kunt toevoegen zonder elke aanroeper te wijzigen.

Kan ik een mutation met een GET-verzoek versturen?

Nee. De richtlijnen voor GraphQL over HTTP laten servers GET alleen accepteren voor query-operaties. Mutations gaan als POST, wat schrijfacties ook buiten browser- en CDN-caches houdt.

Is een mutation met meerdere velden atomair?

Nee. graphql.org merkt op dat seriële uitvoering geen databasetransactie is. Als het tweede veld faalt, blijft de wijziging van het eerste staan, en de response bevat data voor het ene en een fout voor het andere.

Wat moet een delete-mutation teruggeven?

De specificatie laat dat aan u over, maar het veld heeft nog steeds een output-type nodig. Gangbare keuzes zijn de id van het verwijderde object, het verwijderde object zelf, of een payload-type met de id en een succesflag.

Anatomie van een mutation

Variabelen en input-objecten

Fouten bij een schrijfactie

Het schema achter de voorbeelden

Mutation-type en input-types

Input-types gebruiken het sleutelwoord input. TaskPatch heeft geen verplichte velden, dus een update kan alleen versturen wat er veranderd is.

Versturen vanuit JavaScript

De mutation POSTen met fetch

Het document en de variabelen reizen als twee sleutels van één JSON-body. Controleer errors, ook als de status 200 is.

Twee schrijfacties in één operatie

Met aliassen kan hetzelfde veld twee keer draaien. Het tweede draait pas als het eerste klaar is, maar een fout erin maakt het eerste niet ongedaan.

Aanmaken

Het input-type bundelt de velden van de nieuwe taak. De selection set vraagt om de id die de server heeft toegekend.

Wijzigen

De id zegt welke taak moet veranderen en de input bevat alleen de velden die veranderen.

Verwijderen

Bij een verwijderde taak valt niets meer te selecteren, dus dit schema geeft de verwijderde id terug als gewone ID-scalar.

Mutation-bouwer

Kies een mutation

Taaktitel

Mutation

Variabelen (JSON)

Voorbeeldresponse

Mutation kopiëren

Variabelen kopiëren

Verwijderen heeft alleen de id nodig, dus de titel wordt niet verstuurd.

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap