Uge 38: Læringsmål
- Kenneth H Sørensen
- Sep 15
- 2 min read
Updated: Sep 22

IT-sikkerhed
Se uge 39
Backend-udvikling og API-design
Mål
Grundlæggende forståelse af GraphQL og sammenligning med REST
Forstå kernekoncepter: schema, resolvers, execution
Result
Uge 38: GraphQL (link)
Proces
Læse introduktion, skema og typer og type-system (GraphQL Learn + Specification)
Refleksion
Når jeg sammenligner GraphQL med REST, kan jeg se nogle klare fordele.
REST har fungeret godt til mange systemer, men vi har i tidligere projekter oplevet problemer med over-fetching og payloads, der er større end nødvendigt, fra eksterne API producers.
REST erfaringer
API'et returnerer ofte en fast struktur
Vi får mange felter, som vi ikke har brug for
Klienten skal selv sortere og filtrere i data
GraphQL fordele
Klienten kan præcist spørge efter de felter, den har brug for (meget fleksibel)
I en og samme request kan klienten
hente forskellige typer data
nøjes med enkelte felter fra et objekt
kombinere dybe relationer og flade data uden ekstra requests
få data tilbage i samme form som query
Undgår både over-fetching og under-fetching
Payloads bliver mindre og mere effektive
API'et kan udvikle sig uden versionering - felter kan få @deprecated direktiv i stedet
GraphQL er mere komplekst at sætte op end et simpelt REST-endpoint, men fleksibiliteten og kontrol på klientsiden kan gøre det til en stærk løsning i større systemer
Hvornår REST stadig er godt
Små API'er med få felter og simple endpoints
Når caching via HTTP er vigtig
Når klienten ikke har brug for fleksible queries
Den faste struktur kan være hurtigere, hvis behovet er lille
Mere kendt og ofte lettere at sætte op, især til små projekter
Konklusion
Valget mellem REST og GraphQL afhænger af behovet. REST kan være simpelt og effektivt i små systemer, mens GraphQL giver fleksibilitet og kontrol i større løsninger med komplekse databehov. Det er derfor vigtigt at kunne vurdere konteksten, inden man vælger teknologi.
Videre plan
Læse videre i GraphQL Learn (Queries, Mutations, Subscriptions ...)
Bygge et simpelt GraphQL endpoint i C#
Kigge på Kafka og forskellen til GraphQL (asynkron events vs. synkrone queries)
Undersøge storage og pre-signed URLs til Ingestion Service
Projekt
Mål
Kombinere ny viden om GraphQL og kommende viden om Kafka ift. snitfladerne i vores projekt
Videre plan
Gå i gang med at kode / LLD
Dykke ned i ressourcer der kan styrke projektet
API-sikkerhed
storage og pre-signed URLs
Mere GraphQL
Begynde at lære Kafka
Ressourcer
GraphQL Learn
Dokumentation
GraphQL
Specifikation
Evt. videre læsning
GraphQL
Training Courses
