Ontwerpprincipes voor GraphQL-API's
Leer de basis van GraphQL, waaronder schema's, queries, mutations en subscriptions, voor flexibel API-ontwerp.
Ontwerpprincipes voor GraphQL-API's is een gratis Bootcamp backendontwikkeling met Node.js-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Bootcamp backendontwikkeling met Node.js. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Bootcamp backendontwikkeling met Node.js bevat in totaal 4 lessen.
Wat is GraphQL?
Welkom bij het ontwerpen van GraphQL-API's! GraphQL is een krachtige querytaal voor je API's en een runtime voor het uitvoeren van die query's met je bestaande gegevens.
Je kunt het zien als een manier waarop clients, zoals je mobiele app, precies de gegevens kunnen opvragen die ze nodig hebben, niet meer en niet minder. Het is een alternatief voor traditionele REST-API's.

GraphQL versus REST-API's
REST-API's hebben doorgaans meerdere endpoints die elk een vaste gegevensstructuur teruggeven, terwijl GraphQL één enkel endpoint gebruikt.
- REST: Leidt vaak tot overmatig ophalen (meer gegevens ophalen dan nodig) of te weinig ophalen (meerdere verzoeken nodig hebben voor gerelateerde gegevens).
- GraphQL: Lost dit op door clients de gegevensstructuur te laten specificeren, waardoor er minder netwerkverzoeken nodig zijn en de efficiëntie verbetert.
De kern: GraphQL-schema
In het hart van elke GraphQL-API staat het schema. Het schema definieert alle mogelijkheden van de API: welke gegevens kunnen worden opgevraagd, welke gegevens kunnen worden gewijzigd en welke gegevenstypen bestaan.
Het fungeert als een contract tussen de client en de server, zodat beide kanten de beschikbare bewerkingen en gegevensstructuren begrijpen.
Schema Definition Language (SDL)
GraphQL-schema's worden geschreven met de Schema Definition Language (SDL). Dit is een eenvoudige, intuïtieve taal voor het definiëren van typen en bewerkingen.
Bekijk een eenvoudig voorbeeld waarin we een type User met enkele velden definiëren:
type User {
id: ID!
name: String!
email: String
age: Int
}SDL-typen begrijpen
In het vorige voorbeeld:
type User: Definieert een nieuw objecttype met de naamUser.id: ID!:idis een veld van het typeID. Het teken!betekent dat het veld niet-nullbaar is (altijd aanwezig).String,Int,ID: Dit zijn scalaire typen, de ingebouwde basistypen voor gegevens van GraphQL.- Je kunt ook aangepaste objecttypen definiëren, zoals
PostofComment.
Basistype: Query
Het hoofdtype Query is bijzonder. Het definieert alle toegangspunten voor het lezen van gegevens uit je API. Je kunt ze zien als de 'GET'-bewerkingen in REST.
Zo kun je bewerkingen toevoegen om gebruikers of één gebruiker op basis van een ID op te halen:
type Query {
users: [User!]!
user(id: ID!): User
}
type User {
id: ID!
name: String!
email: String
age: Int
}Een GraphQL-query uitvoeren
Zodra het type Query is gedefinieerd, kunnen clients gegevens opvragen. Ze specificeren welke velden ze uit de beschikbare bewerkingen willen ontvangen. Zo voorkom je dat je te veel gegevens ophaalt!
Zo haal je alle namen en ID's van gebruikers op:
query GetUsers {
users {
id
name
}
}Basistype: Mutation
Het hoofdtype Mutation definieert alle toegangspunten voor het schrijven of wijzigen van gegevens in je API. Dit zijn vergelijkbare bewerkingen als 'POST', 'PUT', 'PATCH' en 'DELETE' in REST.
Mutaties ontvangen vaak invoerargumenten en geven het gewijzigde object terug.
type Mutation {
createUser(name: String!, email: String, age: Int): User!
updateUser(id: ID!, name: String, email: String, age: Int): User
deleteUser(id: ID!): Boolean!
}Een GraphQL-mutatie uitvoeren
Net als bij query's sturen clients mutaties om gegevens te wijzigen. Ze specificeren de naam van de mutatie, de argumenten en welke velden van het resultaat ze terug willen ontvangen.
Hier is een voorbeeld waarin je een nieuwe gebruiker maakt:
mutation CreateNewUser {
createUser(name: "Alice", email: "alice@example.com", age: 30) {
id
name
email
}
}Korte kennistoets over schema-ontwerp
Bekijk het volgende fragment van een GraphQL-schema. Welke uitspraken erover zijn WAAR?
type Book {
id: ID!
title: String!
author: Author!
}
type Author {
id: ID!
name: String!
books: [Book!]
}
type Query {
books: [Book!]!
book(id: ID!): Book
authors: [Author!]!
}
type Mutation {
createBook(title: String!, authorId: ID!): Book!
}Samenvatting en vervolg
Goed gedaan! Je hebt de kernprincipes van GraphQL-API-ontwerp geleerd:
- Met GraphQL kunnen clients specifieke gegevens opvragen.
- De Schema Definition Language (SDL) definieert het contract van de API.
- Objecttypen definiëren gegevensstructuren.
- Het hoofdtype
Queryverwerkt het ophalen van gegevens. - Het hoofdtype
Mutationverwerkt het wijzigen van gegevens.
Vervolgens gaan we een GraphQL-server bouwen met Apollo om deze ontwerpen tot leven te brengen!
Leer JavaScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 22
- Lessen
- 92
Veelgestelde vragen
Is de les “Ontwerpprincipes voor GraphQL-API's” gratis?
Ja — de volledige tekst van “Ontwerpprincipes voor GraphQL-API's” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Bootcamp backendontwikkeling met Node.js wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Bootcamp backendontwikkeling met Node.js bevat in totaal 4 lessen.
Wat leer ik in “Ontwerpprincipes voor GraphQL-API's”?
Leer de basis van GraphQL, waaronder schema's, queries, mutations en subscriptions, voor flexibel API-ontwerp. Je oefent met Bootcamp backendontwikkeling met Node.js door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Bootcamp backendontwikkeling met Node.js te beginnen?
Ervaring vooraf is niet nodig. Bootcamp backendontwikkeling met Node.js op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.
Hoe lang duurt de les “Ontwerpprincipes voor GraphQL-API's”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Bootcamp backendontwikkeling met Node.js?
Ja. Elke les over Bootcamp backendontwikkeling met Node.js bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Inleiding tot serverless met Node.js
- Ontwerpprincipes voor GraphQL-API's
- Een GraphQL-server bouwen met Apollo
- GraphQL-subscriptions voor realtimegegevens