GraphQL-API-er med Spring Boot · leksjon

Introduksjon til Apollo Federation

Forstå konseptene i GraphQL Federation, fordelene for mikrotjenestearkitekturer og hvordan det skiller seg fra Schema Stitching.

Leksjon 1 av 412 trinn

Introduksjon til Apollo Federation er en gratis leksjon i GraphQL-API-er med Spring Boot på CoddyKit. Dette er leksjon 1 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 GraphQL-API-er med Spring Boot, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i GraphQL-API-er med Spring Boot inneholder totalt 4 leksjoner.

Velkommen til Federation

Velkommen til Apollo Federation! Denne kraftige arkitekturen hjelper deg med å bygge ett samlet GraphQL-API fra flere uavhengige mikrotjenester.

Se for deg at du har mange små tjenester, der hver tjeneste har ansvar for en del av applikasjonen. Federation lar dem alle bidra til ett stort GraphQL-skjema.

Utfordringen med mikrotjenester

I en mikrotjenestearkitektur har ulike team ofte ansvar for separate backend-tjenester. Hvordan eksponerer du et sammenhengende GraphQL-API?

  • Monolittisk GraphQL: Én stor server som er vanskelig å skalere for store team.
  • Flere GraphQL-endepunkter: Klientene må spørre ulike tjenester, noe som øker kompleksiteten.

Federation tilbyr en ryddig løsning på denne utfordringen.

Et distribuert skjema

Kjerneideen i Federation er at ulike tjenester (kalt subgrafer) hver kan definere en del av det overordnede GraphQL-skjemaet.

Disse delene kombineres deretter av en sentral Gateway til én samlet graf. Det er som å ha mange bidragsytere til én felles tegning.

Gateway og subgrafer

Apollo Federation består av to hovedkomponenter i arkitekturen:

  • Gateway: Dette er inngangspunktet for alle klientforespørsler. Den kjenner til alle subgrafene og hvordan spørringer skal rutes.
  • Subgrafer: Dette er de individuelle mikrotjenestene dine. Hver subgraf implementerer en bestemt del av GraphQL-skjemaet og finner data for sitt domene.

Slik fungerer en føderert spørring

Når en klient sender en GraphQL-spørring til Gateway, skjer følgende i forenklet form:

  1. Gateway mottar spørringen.
  2. Den analyserer hvilke subgrafer som trengs for å oppfylle forespørselen.
  3. Gateway deler opp spørringen og sender bestemte deler til de relevante subgrafene.
  4. Deretter kombinerer den resultatene fra alle subgrafene til ett svar til klienten.

Hvorfor bruke Federation?

Federation gir betydelige fordeler for store systemer i stadig utvikling:

  • Skalerbarhet: Team kan utvikle og distribuere subgrafer uavhengig av hverandre.
  • Frikobling: Tjenestene forblir autonome, noe som reduserer avhengighetene mellom dem.
  • Samlet API: Klientene får ett enkelt og konsekvent GraphQL-endepunkt.
  • Sterk typesikkerhet: Hele grafen er sterkt typet, også på tvers av tjenester.

Federation sammenlignet med Schema Stitching (del 1)

Du har kanskje hørt om Schema Stitching, en annen måte å kombinere GraphQL-API-er på. Hvordan skiller Federation seg fra dette?

Med Stitching kombineres individuelle skjemaer på Gateway, men underskjemaene er ofte ikke klar over hverandre. Det ligner mer på å sette sammen separate dokumenter.

Federation fremmer en virkelig distribuert graf der subgrafene samarbeider eksplisitt og utvider delte typer.

Federation sammenlignet med Schema Stitching (del 2)

Utførelsesmodellen er en annen viktig forskjell:

  • Stitching: Gateway kan hente data fra én tjeneste, deretter en annen, og kombinere dem manuelt. Dette kan føre til mindre optimal datahenting.
  • Federation: Gateway forstår forholdene mellom typer på tvers av subgrafer. Den kan planlegge effektive spørringer intelligent og bare hente det som trengs fra hver tjeneste.

Når bør du velge Apollo Federation?

Federation egner seg spesielt godt for:

  • Store organisasjoner med mange utviklingsteam.
  • Komplekse mikrotjenestearkitekturer som trenger et samlet API.
  • Situasjoner der du over tid ønsker å eksponere én GraphQL-graf i utvikling.

Hvis du har en mindre og enklere applikasjon, kan én enkelt GraphQL-server være tilstrekkelig.

Federation i Spring Boot

Når du bygger fødererte subgrafer med Spring Boot, definerer du GraphQL-typene som vanlig. Du bruker imidlertid også bestemte Federation-direktiver.

Det viktigste er @key, som identifiserer primærnøkkelen til en entitet på tvers av ulike subgrafer. Dette gjør det mulig for Gateway å forstå og løse relasjoner.

Test forståelsen din

La oss kontrollere hvor godt du har forstått kjernebegrepene.

Oppsummering og neste steg

Godt jobbet! I denne leksjonen introduserte vi Apollo Federation, en kraftig metode for å bygge ett samlet GraphQL-API fra flere mikrotjenester.

  • Vi gikk gjennom rollene til Gateway og Subgraphs.
  • Vi utforsket hvordan Federation muliggjør et distribuert skjema og effektiv utførelse av spørringer.
  • Vi så også hvordan dette skiller seg fra Schema Stitching.

Deretter skal vi se nærmere på hvordan du bygger dine første fødererte subgrafer med Spring Boot!

Gratis å komme i gang

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

Ofte stilte spørsmål

Er leksjonen «Introduksjon til Apollo Federation» gratis?

Ja – hele teksten i «Introduksjon til Apollo Federation» 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 GraphQL-API-er med Spring Boot-kurset, kan du oppgradere til CoddyKit PRO. Kurset i GraphQL-API-er med Spring Boot inneholder totalt 4 leksjoner.

Hva lærer jeg i «Introduksjon til Apollo Federation»?

Forstå konseptene i GraphQL Federation, fordelene for mikrotjenestearkitekturer og hvordan det skiller seg fra Schema Stitching. Du øver på GraphQL-API-er med Spring Boot 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 GraphQL-API-er med Spring Boot?

Ingen tidligere erfaring er nødvendig. GraphQL-API-er med Spring Boot 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 1 av 4.

Hvor lang tid tar leksjonen «Introduksjon til Apollo Federation»?

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

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

  1. Introduksjon til Apollo Federation
  2. Oppbygging av federerte subgrafer
  3. Oppsett og administrasjon av Gateway
  4. Entitetsreferanser og @key-direktivet
← Tilbake til GraphQL-API-er med Spring Boot