De basis van GraphQL
Leer de kernconcepten van GraphQL begrijpen, waaronder queries, mutations, subscriptions en de schema definition language (SDL).
De basis van GraphQL is een gratis Enterprise-backend-API's met NestJS-les op CoddyKit. Dit is les 1 van 3. 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 Enterprise-backend-API's met NestJS. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Enterprise-backend-API's met NestJS bevat in totaal 3 lessen.
Wat is GraphQL?
Welkom bij GraphQL! Het is een krachtige opvraagtaal voor API's en een runtime voor het uitvoeren van die opvragingen met je bestaande gegevens.
Je kunt het zien als vragen om precies wat je nodig hebt: niet meer en niet minder. Hierdoor worden je API's efficiënt en flexibel.
GraphQL versus REST-API's
Traditioneel vereisen REST-API's vaak meerdere aanvragen om alle benodigde gegevens op te halen, wat leidt tot 'te veel ophalen' of 'te weinig ophalen'.
- Te veel ophalen: Meer gegevens ophalen dan je nodig hebt.
- Te weinig ophalen: Meerdere aanvragen nodig hebben om alle gegevens op te halen.
GraphQL lost dit op door clients de exacte gegevensstructuur te laten definiëren die ze in één aanvraag willen ontvangen.
De kern: GraphQL-schema
Het hart van elke GraphQL-API is het schema. Dit schema fungeert als contract tussen de client en de server.
Het definieert alle gegevenstypen en bewerkingen (opvragingen, mutaties en abonnementen) die clients kunnen uitvoeren. Je kunt het zien als een blauwdruk voor je API.
Schema's definiëren met SDL
GraphQL-schema's worden geschreven met de Schema Definition Language (SDL). Dit is een eenvoudige, voor mensen leesbare syntaxis.
Met SDL kun je de mogelijkheden en gegevensstructuren van je API duidelijk specificeren. De taal is taalonafhankelijk, wat betekent dat ze met elke backendtaal werkt.
schema {
query: Query
}
type Query {
hello: String
}Bouwstenen: objecttypen
Het meest fundamentele onderdeel van een GraphQL-schema is het objecttype. Dit vertegenwoordigt een type object dat je uit je service kunt ophalen.
Elk objecttype heeft velden, specifieke stukjes gegevens die het kan bevatten. Velden kunnen ook andere objecttypen zijn!
type User {
id: ID!
name: String!
email: String
posts: [Post!]
}
type Post {
id: ID!
title: String!
content: String
}Gegevenstypen: scalars en lijsten
Scalartypen zijn de basisbouwstenen die worden opgelost naar één waarde, zoals String, Int, Float, Boolean en ID (een unieke identificatie).
Lijsttypen zorgen ervoor dat een veld een lijst van een bepaald type kan retourneren, aangegeven met []. ! betekent dat een veld niet-null is en dus altijd een waarde moet retourneren.
type Product {
id: ID! # Non-null ID
name: String! # Non-null String
price: Float! # Non-null Float
tags: [String!] # List of non-null Strings
inStock: Boolean
}Gegevens ophalen met opvragingen
Opvragingen zijn de manier waarop clients gegevens opvragen bij een GraphQL-server. Je specificeert precies welke velden je wilt ontvangen.
Zo krijg je alleen de gegevens waar je om vraagt en voorkom je het te veel ophalen dat bij REST-API's vaak voorkomt.
query GetProductNames {
products {
id
name
}
}Dynamische opvragingen met argumenten
Velden in GraphQL kunnen argumenten accepteren, zodat je parameters kunt doorgeven om de opgehaalde gegevens aan te passen. Dit is nuttig om te filteren of specifieke items te vinden.
Argumenten worden in het schema gedefinieerd en door de client gebruikt bij het uitvoeren van een opvraging.
query GetProductById {
product(id: "prod123") {
id
name
price
}
}Gegevens wijzigen met mutaties
Opvragingen zijn bedoeld om gegevens te lezen, terwijl mutaties bedoeld zijn om gegevens op de server te schrijven, bij te werken of te verwijderen.
Net als opvragingen specificeren mutaties ook welke gegevens na de bewerking moeten worden geretourneerd, zodat je direct feedback over wijzigingen krijgt.
mutation CreateNewProduct {
createProduct(name: "New Gadget", price: 99.99) {
id
name
}
}Realtime-updates: abonnementen
Abonnementen zijn een speciaal type bewerking waarmee clients realtime-updates van de server kunnen ontvangen wanneer specifieke gebeurtenissen plaatsvinden.
Dit is ideaal voor functies zoals livechat, meldingen of realtime dashboards. Hierbij worden doorgaans WebSockets gebruikt.
Controle van de basisprincipes van schema's
Bekijk het volgende GraphQL SDL-fragment voor een type Author:
type Author {
id: ID!
name: String!
books: [Book!]
}Welke van de volgende uitspraken over het veld books zijn juist?
Samenvatting van de basisprincipes van GraphQL
Goed gedaan! Je hebt de belangrijkste concepten van GraphQL geleerd:
- Het is een querytaal voor API's waarmee je precies de benodigde gegevens kunt ophalen.
- Het schema definieert de mogelijkheden van de API met behulp van SDL.
- Je gebruikt queries om gegevens te lezen, mutations om gegevens te schrijven en subscriptions voor realtimegegevens.
Vervolgens bekijken we hoe je GraphQL in een NestJS-toepassing integreert!
Leer TypeScript 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
- 20
- Lessen
- 76
Veelgestelde vragen
Is de les “De basis van GraphQL” gratis?
Ja — de volledige tekst van “De basis van GraphQL” 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 Enterprise-backend-API's met NestJS wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Enterprise-backend-API's met NestJS bevat in totaal 3 lessen.
Wat leer ik in “De basis van GraphQL”?
Leer de kernconcepten van GraphQL begrijpen, waaronder queries, mutations, subscriptions en de schema definition language (SDL). Je oefent met Enterprise-backend-API's met NestJS 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 Enterprise-backend-API's met NestJS te beginnen?
Ervaring vooraf is niet nodig. Enterprise-backend-API's met NestJS 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 1 van 3.
Hoe lang duurt de les “De basis van GraphQL”?
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 Enterprise-backend-API's met NestJS?
Ja. Elke les over Enterprise-backend-API's met NestJS 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
- De basis van GraphQL
- NestJS GraphQL instellen
- Resolvers en subscriptions