Principper for GraphQL API-design
Lær grundprincipperne i GraphQL, herunder schemas, queries, mutations og subscriptions, til fleksibelt API-design.
Principper for GraphQL API-design er en gratis Bootcamp i backendudvikling med Node.js-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Bootcamp i backendudvikling med Node.js, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Bootcamp i backendudvikling med Node.js-kurset indeholder 4 lektioner i alt.
Hvad er GraphQL?
Velkommen til GraphQL API-design! GraphQL er et effektivt forespørgselssprog til dine API'er og en runtime, der kan behandle disse forespørgsler med dine eksisterende data.
Du kan se det som en måde, hvorpå klienter (f.eks. din mobilapp) kan bede om præcis de data, de har brug for – hverken mere eller mindre. Det er et alternativ til traditionelle REST API'er.

GraphQL sammenlignet med REST API'er
REST API'er har typisk flere endepunkter, som hver returnerer en fast datastruktur, mens GraphQL bruger ét samlet endepunkt.
- REST: Fører ofte til overhentning (at hente flere data end nødvendigt) eller underhentning (at have brug for flere anmodninger for relaterede data).
- GraphQL: Løser dette ved at lade klienter angive dataformen, hvilket reducerer antallet af netværksanmodninger og forbedrer effektiviteten.
Kernen: GraphQL-skemaet
I hjertet af alle GraphQL API'er ligger deres skema. Skemaet definerer hele API'ets funktionalitet: hvilke data der kan forespørges om, hvilke data der kan ændres, og hvilke datatyper der findes.
Det fungerer som en kontrakt mellem klienten og serveren og sikrer, at begge sider forstår de tilgængelige handlinger og datastrukturer.
Skemadefinitionssproget (SDL)
GraphQL-skemaer skrives ved hjælp af Schema Definition Language (SDL). Det er et enkelt og intuitivt sprog til definition af typer og handlinger.
Lad os se på et grundlæggende eksempel på definition af typen User med nogle felter:
type User {
id: ID!
name: String!
email: String
age: Int
}Forstå SDL-typer
I det foregående eksempel:
type User: Definerer en ny objekttype med navnetUser.id: ID!:ider et felt af typenID.!betyder, at feltet er ikke-nullbart (altid til stede).String,Int,ID: Dette er skalartyper, GraphQL's indbyggede grundlæggende datatyper.- Du kan også definere brugerdefinerede objekttyper som
PostellerComment.
Rodtype: Query
Rodtypen Query er særlig. Den definerer alle indgangspunkter til læsning af data fra dit API. Du kan betragte dem som 'GET'-handlingerne i REST.
Her kan du se, hvordan du kan tilføje handlinger til at hente brugere eller én bruger efter id:
type Query {
users: [User!]!
user(id: ID!): User
}
type User {
id: ID!
name: String!
email: String
age: Int
}Udførelse af en GraphQL-forespørgsel
Når typen Query er defineret, kan klienter anmode om data. De angiver, hvilke felter de vil have fra de tilgængelige handlinger. På den måde undgår du overhentning!
Sådan henter du alle brugernavne og id'er:
query GetUsers {
users {
id
name
}
}Rodtype: Mutation
Rodtypen Mutation definerer alle indgangspunkter til skrivning eller ændring af data i dit API. De svarer til 'POST'-, 'PUT'-, 'PATCH'- og 'DELETE'-handlinger i REST.
Mutationer modtager ofte inputargumenter og returnerer det ændrede objekt.
type Mutation {
createUser(name: String!, email: String, age: Int): User!
updateUser(id: ID!, name: String, email: String, age: Int): User
deleteUser(id: ID!): Boolean!
}Udførelse af en GraphQL-mutation
Ligesom ved forespørgsler sender klienter mutationer for at udføre dataændringer. De angiver mutationsnavnet, dets argumenter og de felter fra resultatet, som de vil have retur.
Her er et eksempel på oprettelse af en ny bruger:
mutation CreateNewUser {
createUser(name: "Alice", email: "alice@example.com", age: 30) {
id
name
email
}
}Hurtigt tjek af skemadesign
Se på følgende udsnit af et GraphQL-skema. Hvilke udsagn om det er SANDE?
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!
}Opsummering og næste skridt
Godt klaret! Du har lært de grundlæggende principper for GraphQL API-design:
- GraphQL lader klienter anmode om bestemte data.
- Schema Definition Language (SDL) definerer API'ets kontrakt.
- Objekttyper definerer datastrukturer.
- Rodtypen
Queryhåndterer datahentning. - Rodtypen
Mutationhåndterer dataændringer.
Dernæst dykker vi ned i opbygningen af en GraphQL-server med Apollo, så disse designs kan blive til virkelighed!
Lær JavaScript med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 22
- Lektioner
- 92
Ofte stillede spørgsmål
Er lektionen “Principper for GraphQL API-design” gratis?
Ja — hele teksten til “Principper for GraphQL API-design” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Bootcamp i backendudvikling med Node.js-kurset, skal du opgradere til CoddyKit PRO. Bootcamp i backendudvikling med Node.js-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Principper for GraphQL API-design”?
Lær grundprincipperne i GraphQL, herunder schemas, queries, mutations og subscriptions, til fleksibelt API-design. Du øver dig i Bootcamp i backendudvikling med Node.js med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Bootcamp i backendudvikling med Node.js?
Der kræves ingen tidligere erfaring. Bootcamp i backendudvikling med Node.js på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Principper for GraphQL API-design”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Bootcamp i backendudvikling med Node.js-lektion?
Ja. Alle Bootcamp i backendudvikling med Node.js-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Introduktion til serverless med Node.js
- Principper for GraphQL API-design
- Opbygning af en GraphQL-server med Apollo
- GraphQL-subscriptions til data i realtid