NestJS: backend-API:er för företag · Lektion

Grunderna i GraphQL

Förstå de grundläggande koncepten i GraphQL, inklusive queries, mutationer, prenumerationer och schemadefinitionsspråket (SDL).

Lektion 1 av 312 steg

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!

Gratis att börja

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

  1. Grunderna i GraphQL
  2. Konfigurera NestJS för GraphQL
  3. Resolvers och prenumerationer
← Tillbaka till NestJS: backend-API:er för företag