Grunderna i GraphQL
Förstå de grundläggande koncepten i GraphQL, inklusive queries, mutationer, prenumerationer och schemadefinitionsspråket (SDL).
Grunderna i GraphQL är en gratis lektion i NestJS: backend-API:er för företag på CoddyKit. Detta är lektion 1 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för NestJS: backend-API:er för företag, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i NestJS: backend-API:er för företag innehåller totalt 3 lektioner.
Vad är GraphQL?
Välkommen till GraphQL! Det är ett kraftfullt frågespråk för API:er och en runtime-miljö som kör dessa frågor mot Era befintliga data.
Tänk på det som att be om exakt det Ni behöver, varken mer eller mindre. Det bidrar till att göra Era API:er effektiva och flexibla.
GraphQL jämfört med REST API:er
Traditionellt kräver REST API:er ofta flera förfrågningar för att hämta all nödvändig data, vilket leder till att man hämtar för mycket eller för lite data.
- För mycket data: Ni får mer data än Ni behöver.
- För lite data: Ni behöver flera förfrågningar för att få all data.
GraphQL löser detta genom att låta klienter definiera exakt den datastruktur de vill ha i en enda förfrågan.
Kärnan: GraphQL-schema
I hjärtat av varje GraphQL-API finns dess schema. Schemat fungerar som ett kontrakt mellan klienten och servern.
Det definierar alla datatyper och operationer (queries, mutations, subscriptions) som klienter kan utföra. Det fungerar som en ritning för Ert API.
Definiera scheman med SDL
GraphQL-scheman skrivs med Schema Definition Language (SDL). Det är en enkel syntax som är lätt för människor att läsa.
SDL låter Er tydligt ange API:ets funktioner och datastrukturer. Det är språkoberoende, vilket innebär att det fungerar med alla backend-språk.
schema {
query: Query
}
type Query {
hello: String
}Byggblock: objekttyper
Den mest grundläggande komponenten i ett GraphQL-schema är Object Type. Den representerar en typ av objekt som Ni kan hämta från Er tjänst.
Varje objekttyp har fält, som är specifika delar av data som den kan innehålla. Fält kan även vara andra objekttyper!
type User {
id: ID!
name: String!
email: String
posts: [Post!]
}
type Post {
id: ID!
title: String!
content: String
}Datatyper: skalärer och listor
Skalärtyper är de grundläggande byggblock som löses till ett enda värde, till exempel String, Int, Float, Boolean och ID (en unik identifierare).
Listtyper låter ett fält returnera en lista av en viss typ, vilket anges med []. ! betyder att ett fält är Non-Null, så det måste alltid returnera ett värde.
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
}Hämta data med queries
Queries är det sätt på vilket klienter begär data från en GraphQL-server. Ni anger exakt vilka fält Ni vill ta emot.
Det säkerställer att Ni bara får den data Ni efterfrågar och undviker att hämta för mycket, vilket är vanligt i REST API:er.
query GetProductNames {
products {
id
name
}
}Dynamiska queries med argument
Fält i GraphQL kan ta emot argument, vilket gör att Ni kan skicka parametrar för att anpassa den data som hämtas. Det är användbart för att filtrera eller hitta specifika objekt.
Argument definieras i schemat och används av klienten när en query skickas.
query GetProductById {
product(id: "prod123") {
id
name
price
}
}Ändra data med mutations
Medan queries används för att läsa data används mutations för att skriva, uppdatera eller ta bort data på servern.
Precis som queries anger mutations också vilka data som ska returneras efter operationen, vilket ger omedelbar återkoppling på ändringar.
mutation CreateNewProduct {
createProduct(name: "New Gadget", price: 99.99) {
id
name
}
}Realtidsuppdateringar: subscriptions
Subscriptions är en särskild typ av operation som låter klienter ta emot uppdateringar i realtid från servern när specifika händelser inträffar.
Det passar perfekt för funktioner som livechatt, aviseringar eller instrumentpaneler i realtid. Det använder vanligtvis WebSockets.
Kontroll av schemagrunderna
Överväg följande GraphQL SDL-kod för en Author-typ:
type Author {
id: ID!
name: String!
books: [Book!]
}Vilka av följande påståenden om fältet books är sanna?
Sammanfattning av GraphQL-grunderna
Bra jobbat! Ni har lärt er GraphQLs grundläggande koncept:
- Det är ett frågespråk för API:er som möjliggör exakt hämtning av data.
- Schema definierar API:ets funktioner med hjälp av SDL.
- Ni använder queries för att läsa, mutations för att skriva och subscriptions för data i realtid.
Härnäst ska vi se hur GraphQL integreras i en NestJS-applikation!
Lär dig TypeScript med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 20
- Lektioner
- 76
Vanliga frågor
Är lektionen ”Grunderna i GraphQL” gratis?
Ja – hela texten till ”Grunderna i GraphQL” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i NestJS: backend-API:er för företag, kan Ni uppgradera till CoddyKit PRO. Kursen i NestJS: backend-API:er för företag innehåller totalt 3 lektioner.
Vad lär jag mig i ”Grunderna i GraphQL”?
Förstå de grundläggande koncepten i GraphQL, inklusive queries, mutationer, prenumerationer och schemadefinitionsspråket (SDL). Ni övar på NestJS: backend-API:er för företag med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig NestJS: backend-API:er för företag?
Du behöver inga förkunskaper. Utbildningen i NestJS: backend-API:er för företag på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 3.
Hur lång tid tar lektionen ”Grunderna i GraphQL”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här NestJS: backend-API:er för företag-lektionen?
Ja. Varje NestJS: backend-API:er för företag-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Grunderna i GraphQL
- Konfigurera NestJS för GraphQL
- Resolvers och prenumerationer