Prinsipper for GraphQL API-design
Lær det grunnleggende om GraphQL, inkludert skjemaer, spørringer, mutasjoner og abonnementer, for fleksibel API-utforming.
Prinsipper for GraphQL API-design er en gratis leksjon i Bootcamp i backendutvikling med Node.js på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bootcamp i backendutvikling med Node.js, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bootcamp i backendutvikling med Node.js inneholder totalt 4 leksjoner.
Hva er GraphQL?
Velkommen til utforming av GraphQL-API-er! GraphQL er et kraftig spørringsspråk for API-ene Deres og en kjøremotor som utfører disse spørringene ved hjelp av eksisterende data.
Tenk på det som en måte klienter, for eksempel mobilappen Deres, kan be om akkurat dataene de trenger – verken mer eller mindre. Det er et alternativ til tradisjonelle REST-API-er.

GraphQL kontra REST-API-er
REST-API-er har vanligvis flere endepunkter, der hvert endepunkt returnerer en fast datastruktur, mens GraphQL bruker ett enkelt endepunkt.
- REST: Fører ofte til overhenting (at man henter mer data enn nødvendig) eller underhenting (at man trenger flere forespørsler for relaterte data).
- GraphQL: Løser dette ved å la klientene angi dataformen, noe som reduserer antallet nettverksforespørsler og forbedrer effektiviteten.
Kjernen: GraphQL-skjemaet
I hjertet av alle GraphQL-API-er ligger skjemaet. Skjemaet definerer hele API-ets funksjonalitet: hvilke data som kan hentes, hvilke data som kan endres, og hvilke datatyper som finnes.
Det fungerer som en kontrakt mellom klienten og serveren og sikrer at begge sider forstår de tilgjengelige operasjonene og datastrukturene.
Schema Definition Language (SDL)
GraphQL-skjemaer skrives ved hjelp av Schema Definition Language (SDL). Det er et enkelt og intuitivt språk for å definere typer og operasjoner.
La oss se på et grunnleggende eksempel på hvordan man definerer en User-type med noen felter:
type User {
id: ID!
name: String!
email: String
age: Int
}Forstå SDL-typer
I det forrige eksempelet:
type User: Definerer en ny objekttype med navnetUser.id: ID!:ider et felt av typenID.!betyr at feltet er non-nullable (alltid til stede).String,Int,ID: Dette er skalartyper, GraphQLs innebygde grunnleggende datatyper.- De kan også definere egendefinerte objekttyper som
PostellerComment.
Rottype: Query
Rottypen Query er spesiell. Den definerer alle inngangspunktene for å lese data fra API-et Deres. Tenk på disse som «GET»-operasjonene i REST.
Slik kan De legge til operasjoner for å hente brukere eller én bruker ved hjelp av ID:
type Query {
users: [User!]!
user(id: ID!): User
}
type User {
id: ID!
name: String!
email: String
age: Int
}Kjøre en GraphQL-spørring
Når Query-typen er definert, kan klientene be om data. De angir hvilke felter de ønsker fra de tilgjengelige operasjonene. Slik unngår De overhenting!
For å hente alle brukernavn og ID-er:
query GetUsers {
users {
id
name
}
}Rottype: Mutation
Rottypen Mutation definerer alle inngangspunktene for å skrive eller endre data i API-et Deres. Disse tilsvarer «POST»-, «PUT»-, «PATCH»- og «DELETE»-operasjoner i REST.
Mutasjoner tar ofte imot inndataargumenter og returnerer det endrede objektet.
type Mutation {
createUser(name: String!, email: String, age: Int): User!
updateUser(id: ID!, name: String, email: String, age: Int): User
deleteUser(id: ID!): Boolean!
}Kjøre en GraphQL-mutasjon
I likhet med spørringer sender klientene mutasjoner for å utføre endringer i dataene. De angir mutasjonsnavnet, argumentene og hvilke felter i resultatet de ønsker tilbake.
Her er et eksempel på hvordan man oppretter en ny bruker:
mutation CreateNewUser {
createUser(name: "Alice", email: "alice@example.com", age: 30) {
id
name
email
}
}Rask kontroll av skjemaet
Se på følgende utdrag av et GraphQL-skjema. Hvilke påstander om det er SANNE?
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!
}Oppsummering og veien videre
Godt jobbet! De har lært de viktigste prinsippene for utforming av GraphQL-API-er:
- GraphQL lar klienter be om bestemte data.
- Schema Definition Language (SDL) definerer API-ets kontrakt.
- Objekttyper definerer datastrukturer.
- Rottypen
Queryhåndterer uthenting av data. - Rottypen
Mutationhåndterer endring av data.
Deretter skal vi se nærmere på hvordan man bygger en GraphQL-server med Apollo for å gjøre disse utformingene virkelige!
Lær deg JavaScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 22
- Leksjoner
- 92
Ofte stilte spørsmål
Er leksjonen «Prinsipper for GraphQL API-design» gratis?
Ja – hele teksten i «Prinsipper for GraphQL API-design» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Bootcamp i backendutvikling med Node.js-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Bootcamp i backendutvikling med Node.js inneholder totalt 4 leksjoner.
Hva lærer jeg i «Prinsipper for GraphQL API-design»?
Lær det grunnleggende om GraphQL, inkludert skjemaer, spørringer, mutasjoner og abonnementer, for fleksibel API-utforming. Du øver på Bootcamp i backendutvikling med Node.js med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Bootcamp i backendutvikling med Node.js?
Ingen tidligere erfaring er nødvendig. Bootcamp i backendutvikling med Node.js på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Prinsipper for GraphQL API-design»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Bootcamp i backendutvikling med Node.js-leksjonen?
Ja. Alle Bootcamp i backendutvikling med Node.js-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Introduksjon til serverless med Node.js
- Prinsipper for GraphQL API-design
- Bygge en GraphQL-server med Apollo
- GraphQL-abonnementer for sanntidsdata