English
Polski
Français
Deutsch
日本
Español
Nederlands
GraphQL er en måde at kommunikere med API'er på, der er skabt som et alternativ til REST.
GraphQL er et forespørgselssprog til API'er, der blev udviklet af Facebook og deres udviklerfællesskab. Det havde premiere i juni 2018 og er nu en moden teknologi, der har vundet bred anerkendelse på markedet. Som et resultat er det velkendt, og mange virksomheder vælger at implementere det. For at fortælle dig, hvordan det er anderledes, er vi nødt til at se på, hvad der stadig er mest udbredt: REST, og hvad det er baseret på. GraphQL bliver ofte kaldt efterfølgeren til REST, fordi det løser de vigtigste problemer. Som du sikkert ved, er det baseret på en slags gammelt systemdesign. Ifølge det er hver datamodel tilgængelig på en separat adresse. Hvis vi f.eks. har en onlinebutik med tøj, kan vi have adresser til indkøbskurv, lager, produkter og mange flere.
Faktisk vil antallet af sådanne adresser aldrig være lille, tværtimod vil det vokse med systemet. Husk på, at du for næsten hver adresse skal oprette et sæt kald til at håndtere get-, post-, put- eller delete-anmodninger. Det vil resultere i et stort antal adresser, der skal vedligeholdes, og en endnu større mængde kald, der er nødvendige for at få dataene. GraphQL fungerer på en helt anden måde. Vi har kun én adresse, en enkelt kilde til sandhed, hvorfra vi kan anmode om data. Hvad vi får, afhænger udelukkende af os, og hvordan vi konstruerer forespørgslen.
Nøglefunktionen i GraphQL er evnen til at udføre fleksible forespørgsler, hvor vi definerer præcis, hvilke data fra API'et vi ønsker at få. Derudover giver sproget mulighed for at oprette indlejrede forespørgsler, hvilket gør det endnu mere fordelagtigt i forhold til REST API'er på disse områder.
Et lighedspunkt mellem REST og GraphQL er uafhængighed af platform eller programmeringssprog. Et andet fællestræk er, at de samme operationer kan gentages. For både REST-arkitekturen og GraphQL gælder det, at operationer som retrieve, modify eller delete kan bruges gentagne gange uden at ændre resultatet.
De grundlæggende elementer i GraphQL er: mutation:
GraphQL bruger sin egen syntaks: SDL eller Schema Definition Language. Det bruges til at specificere skemaet for en API og dens typer og felter. Typer erklæres ved hjælp af nøgleordet type, og felter tilføjes i parentes for hver objekttype.
Selvom GraphQL stadig ikke er så populært som REST, vokser dets community hurtigt. Det har allerede haft en række store adoptere som GitHub, Netflix, PayPal eller Shopify. Det er kun et spørgsmål om tid, før flere vil følge efter.