IT Ordbog
Hvad er GraphQL?
GraphQL er et moderne query-sprog til API'er, oprindeligt udviklet af Facebook. Det giver klienten fuld kontrol over hvilke data der hentes, hvilket eliminerer over-fetching og under-fetching af data.
Hvad er GraphQL?
GraphQL er et query-sprog og runtime for API'er, udviklet af Facebook i 2012 og open-sourcet i 2015. I modsætning til REST API'er, der har faste endpoints med foruddefinerede datastrukturer, har GraphQL ét enkelt endpoint, hvor klienten specificerer præcis hvilke felter der ønskes via en query. Dette eliminerer to almindelige REST-problemer: over-fetching (modtagelse af unødvendige data) og under-fetching (behov for multiple API-kald for at samle relaterede data).
Sådan fungerer GraphQL
GraphQL definerer et type-system (schema) der beskriver alle tilgængelige data og deres relationer. Klienten sender queries til ét endpoint og modtager præcis de data, den har bedt om — i den struktur den specificerede. GraphQL understøtter: Queries (hentning af data), Mutations (ændring af data), og Subscriptions (real-time opdateringer via WebSockets). Serveren resolver queries ved at mappe dem til datahentningsfunktioner (resolvers) der henter fra databaser eller andre API'er.
GraphQL vs. REST
REST er simpel, veletableret og har bred caching-support (HTTP caching). GraphQL er mere fleksibel og effektiv for komplekse datamodeller. REST er bedst til: simple CRUD-operationer, offentlige API'er, systemer med stærk caching-behov. GraphQL er bedst til: apps med komplekse data-relationer, mobile apps der skal minimere datamængde, systemer hvor frontend-teamet har varierende databehov. Mange systemer bruger begge: REST for simple operationer og GraphQL for komplekse forespørgsler.
Hvornår vælge GraphQL?
GraphQL er ideelt for: mobile apps (minimal datamængde sparer båndbredde), dashboards med komplekse datavisninger, e-commerce med mange relaterede produktdata, og microservices-arkitekturer der aggregerer data fra flere kilder. Virksomheder som GitHub, Shopify, Twitter og Netflix bruger GraphQL. For mange projekter er REST dog tilstrækkeligt og simplere at implementere. Grumsen Development rådgiver om det rigtige valg baseret på projektets datakompleksitet og klient-behov.