GraphQL-API'er med Spring Boot · Lektion

Forståelse af GraphQL-subscriptions

Udforsk begrebet subscriptions til dataopdateringer i realtid og den underliggende WebSocket-protokol.

Lektion 1 af 411 trin

Forståelse af GraphQL-subscriptions er en gratis GraphQL-API'er med Spring Boot-lektion på CoddyKit. Dette er lektion 1 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 GraphQL-API'er med Spring Boot, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. GraphQL-API'er med Spring Boot-kurset indeholder 4 lektioner i alt.

Realtid med abonnementer

Velkommen! I denne lektion går vi i dybden med GraphQL-abonnementer, en effektiv funktion til dataopdateringer i realtid. Forestil dig at få øjeblikkelige meddelelser eller direkte datastrømme fra din server!

Abonnementer giver klienter mulighed for automatisk at modtage opdateringer, når data på serveren ændres, uden at de hele tiden behøver at anmode om nye oplysninger.

Tre GraphQL-operationer

GraphQL har tre hovedtyper af operationer:

  • Forespørgsler: Bruges til at hente data. Tænk på det som en GET-forespørgsel.
  • Mutationer: Bruges til at ændre data (oprette, opdatere, slette). Ligesom POST, PUT og DELETE.
  • Abonnementer: Bruges til at abonnere på hændelser i realtid og modtage data, efterhånden som de opstår.

Hver type har sit eget formål, når du interagerer med din API.

Behovet for direkte data

Hvorfor er abonnementer så vigtige? De løser problemet med at holde klientapplikationer opdaterede med de nyeste data uden konstant forespørgsel.

  • Chatapplikationer: Nye beskeder vises med det samme.
  • Direkte kontrolpaneler: Målinger opdateres i realtid.
  • Meddelelser: Få beskeder, efterhånden som hændelser opstår.
  • Aktiekurser: Se prisændringer med det samme.

De giver en problemfri og dynamisk brugeroplevelse.

Abonnementsforløbet

I modsætning til forespørgsler og mutationer, som består af enkeltstående forespørgsels- og svarcyklusser, opretter abonnementer en vedvarende forbindelse mellem klienten og serveren.

Når en klient abonnerer, sender den en abonnementsforespørgsel til serveren. Serveren holder derefter forbindelsen åben og sender data til klienten, hver gang den anmodede hændelse indtræffer.

Tag WebSockets i brug

GraphQL-abonnementer er primært baseret på WebSockets. En WebSocket er en kommunikationsprotokol, der leverer fuld duplex-kommunikation over én TCP-forbindelse.

Tænk på det som en tovejsvej, der forbliver åben, så både klienten og serveren når som helst kan sende meddelelser til hinanden, i modsætning til traditionel HTTP, der følger modellen med forespørgsel og svar.

Oprettelse af forbindelse

Før en WebSocket-forbindelse er fuldt oprettet, finder der en særlig HTTP-forespørgsel kaldet et håndtryk sted.

Klienten sender en HTTP-forespørgsel med en "Upgrade"-header. Hvis serveren understøtter WebSockets, svarer den med en "Upgrade"-header og skifter protokollen fra HTTP til WebSocket. Derefter foregår al kommunikation via WebSocket-protokollen.

Fra forbindelse til hændelse

Her er et forenklet livsforløb:

  1. Opret forbindelse: Klienten sender et WebSocket-håndtryk.
  2. Abonnér: Klienten sender en GraphQL-abonnementsforespørgsel via WebSocket.
  3. Udløs hændelse: Data ændres på serveren, hvilket udløser en hændelse.
  4. Udgiv: Serveren sender de nye data (nyttelasten) til den klient, der abonnerer.
  5. Opsig abonnement/afbryd forbindelse: Klienten lukker abonnementet eller forbindelsen.

Schema Definition Language

I dit GraphQL-schema definerer du abonnementer ved hjælp af rodtypen subscription. Ligesom query og mutation indeholder den en liste over de tilgængelige hændelser i realtid.

Hvert felt i typen subscription repræsenterer en hændelse, som en klient kan abonnere på. Feltet angiver den datatype, der returneres, når hændelsen indtræffer.

Enkel abonnementstype

Sådan kan du definere et abonnement på en ny kommentar i dit Schema Definition Language (SDL):

type Subscription {
  commentAdded(postId: ID!): Comment!
}

type Comment {
  id: ID!
  content: String!
  author: String
  postId: ID!
}

Klienter kan abonnere på commentAdded ved at angive et postId og modtage et Comment-objekt, hver gang der oprettes en ny kommentar til dette id.

type Subscription {
  commentAdded(postId: ID!): Comment!
}

type Comment {
  id: ID!
  content: String!
  author: String
  postId: ID!
}

Test din viden

Abonnementer er effektive til data i realtid. Lad os teste din forståelse af, hvordan de fungerer, og af den underliggende teknologi.

Opsummering: Abonnementer og WebSockets

Godt gået! Du har lært det grundlæggende om GraphQL-abonnementer.

  • De leverer dataopdateringer i realtid.
  • De bruger vedvarende forbindelser, ofte WebSockets.
  • De adskiller sig fra forespørgsler og mutationer.
  • Serveren sender data til klienterne, når hændelser indtræffer.

Nu går vi videre til at implementere dem i Spring Boot!

Gratis at komme i gang

Lær GraphQL-API'er med Spring Boot 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
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Forståelse af GraphQL-subscriptions” gratis?

Ja — hele teksten til “Forståelse af GraphQL-subscriptions” 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 GraphQL-API'er med Spring Boot-kurset, skal du opgradere til CoddyKit PRO. GraphQL-API'er med Spring Boot-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Forståelse af GraphQL-subscriptions”?

Udforsk begrebet subscriptions til dataopdateringer i realtid og den underliggende WebSocket-protokol. Du øver dig i GraphQL-API'er med Spring Boot 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å GraphQL-API'er med Spring Boot?

Der kræves ingen tidligere erfaring. GraphQL-API'er med Spring Boot 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 1 af 4.

Hvor lang tid tager lektionen “Forståelse af GraphQL-subscriptions”?

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 GraphQL-API'er med Spring Boot-lektion?

Ja. Alle GraphQL-API'er med Spring Boot-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

  1. Forståelse af GraphQL-subscriptions
  2. Implementering af opdateringer i realtid
  3. Integration af WebSockets med Spring
  4. Filtrering og skalering af subscriptions
← Tilbage til GraphQL-API'er med Spring Boot