top of page

Uge 38: Læringsmål

  • Writer: Kenneth H Sørensen
    Kenneth H Sørensen
  • Sep 15
  • 2 min read

Updated: Sep 22

ree

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)

  • GraphQL dokumentation (link)

  • GraphQL specifikation (link)


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




Related Posts

See All
bottom of page