DOCS

Varför GraphQL

Upptäck varför vi rekommenderar integration via GraphQL framför REST.

På Zonos erbjuder vi två huvudtyper av API:er för integration: GraphQL och REST. Även om REST API:er har funnits längre och kan vara mer bekanta för många, har vi gått över till GraphQL för att möjliggöra mer flexibilitet och snabbare innovation. Även om båda fortfarande stöds förklarar den här guiden varför GraphQL inte bara är framtiden för våra integrationer utan också framtiden för integrationer i allmänhet — och ett kraftfullare verktyg för att möta era behov idag.

Vad är GraphQL? 

GraphQL är ett alternativt sätt att prata med API:er som är mycket väl lämpat för komplexa datastrukturer och för att bygga gränssnitt ovanpå dem. Till skillnad från att behandla data som separata, fristående delar visar GraphQL hur databitar hänger ihop och relaterar till varandra, vilket gör det enkelt att be om och ta emot information.

Tänk på GraphQL som ett frågespråk som låter er prata med API:et som om ni pratade direkt med databasen. Med GraphQL kan ni komma så nära databasen som möjligt, välja exakt vilken data ni vill ha och hur ni får den, vilket ger en stor prestandafördel.

GraphQL skapades av Facebook för att lösa problemet med att skala komplexa datastrukturer. Som ett resultat av deras framgångsrika adoption har fler och fler företag börjat inse fördelarna med att använda GraphQL för sina API:er.

Kan ni redan REST? GraphQL kommer att kännas bekant.

GraphQL API:er är enklare att arbeta med än ni kanske tror. Om ni är vana vid REST API:er är det så här kärnkoncept från REST översätts till GraphQL.

FunktionRESTGraphQL
EndpointFörfrågningar görs till flera endpoints för olika åtgärderAlla förfrågningar görs till en enda endpoint (t.ex. /graphql)
DatahämtningAnvänd GET-metoder på specifika endpoints för att hämta dataAnvänd queries för att begära exakt den data som behövs, vilket minskar over-fetching eller under-fetching
Datamodifiering/åtgärderAnvänd HTTP-metoder som POST, PUT, PATCH eller DELETE för att ändra eller bearbeta data.Använd mutations för att utföra operationer (t.ex. skapa parties, beräkna landed costs)
SvarsformatFasta svarsformat returnerar alla fördefinierade fält, oavsett om de behövsFlexibla svar gör det möjligt att specificera exakt vilka fält som ska inkluderas, vilket minskar onödig dataöverföring (Om den här flexibiliteten känns komplicerad kan ni helt enkelt använda de förskrivna query-exempel i vår dokumentation för en RESTful upplevelse)
DatakopplingFlera förfrågningar krävs ofta för att hämta relaterad dataNästlade queries möjliggör hämtning av relaterad data i en enda förfrågan (t.ex. party-uppgifter och försändelseartiklar tillsammans). Användare kan också bygga workflows för att hantera flera mutations inom en enda GraphQL-förfrågan, vilket minskar komplexitet och förbättrar effektivitet

Fördelar med GraphQL

En analogi 

Föreställ er att ni är på en restaurang med en meny som låter er beställa rätter precis som ni vill ha dem, jämfört med en annan restaurang där ni bara kan välja bland fasta menyer. GraphQL är som den första restaurangen:

  • Få exakt det ni vill ha: Med GraphQL kan ni be om exakt den data ni behöver — varken mer eller mindre. Föreställ er att ni bara vill ha namnet och priset på en rätt, inte hela ingredienslistan. Med REST API:er måste ni hämta hela rättdetaljerna och ignorera delarna ni inte behöver.
  • Komponera en skräddarsydd rätt: Vårt GraphQL API kan enkelt kombineras för att skapa mer skräddarsydda lösningar, likt en bufférestaurang där ni kan skapa en unik rätt precis som ni behöver den, med ingredienser de redan har. Däremot är ett REST API som ett bageri med färdiga varor packade i korgar — ni kan bara beställa det som redan har skapats och ni kan inte välja att bara ta hem den bit ni vill ha.
  • Mindre väntan: Eftersom ni kan få all information ni behöver i en enda förfrågan är det som att be servern ta fram förrätt, huvudrätt och dessert på en gång, snarare än att vänta mellan rätterna. De flesta REST API:er kräver att ni skickar flera förfrågningar för att få olika informationsbitar.
  • Enkelt att ändra beställningar: Om er apps databehov förändras gör GraphQL det enklare att justera. Ni ändrar bara queryn för det ni behöver. Med REST kan ni behöva vänta på att köket (backend) skapar en ny rätt (endpoint) till menyn, vilket tar mer tid.

GraphQL erbjuder mer flexibilitet, effektivitet och enkelhet för att hämta data än REST API:er, särskilt när era behov förändras eller växer.

Hur Zonos använder GraphQL 

Under moderniseringen av vår plattform de senaste åren har Zonos valt att bygga ny funktionalitet med GraphQL för vårt API istället för REST. Vi beslutade detta eftersom vår data är komplex och sammanlänkad, ungefär som den data som ledde Facebook till att skapa GraphQL. Den komplexiteten gör det utmanande att bygga skalbara REST API:er eftersom sätten utvecklare behöver hämta och använda data varierar dramatiskt mellan implementationer, och REST är inte flexibelt.

GraphQL löser snyggt det här problemet genom att låta utvecklare som implementerar vårt API välja exakt vilken data de vill ha och hur de får den. Det låter dem passa in den i sina workflows utan att Zonos behöver göra skräddarsytt arbete (medan de väntar) för varje situation.

Det kombinerade resultatet av att använda GraphQL och moderniseringarna i vår plattform har gjort vårt API mer högpresterande, gjort det snabbare att integrera Zonos i era system och gjort det möjligt för Zonos att leverera nya funktioner snabbare.

Bättre funktioner

Zonos utvecklar kontinuerligt nya funktioner, och GraphQL är den första (och vanligtvis enda) som får dessa uppdateringar. Däremot anses våra REST API:er vara end-of-life och kan inte få tillgång till många av våra nya funktioner.

Exempel på funktioner begränsade till GraphQL:

  • Inclusive pricing
  • Labels API
  • Ny Checkout och Hello
  • Boxstorlekar i API-svar
  • Dashboard-rapportering
  • Möjlighet att begära en DDP-offert om möjligt, men fortfarande returnera en DDU-offert om DDP inte är tillgängligt till det landet med den servicenivån
  • Detaljerad uppdelning av tullar, skatter och avgifter (artikelinformation, specifika avgifter) — Dashboard drivs av GraphQL och visar den här datan för alla butiker, men REST API-svaret inkluderar inte den här detaljnivån
  • Testläge (kommer snart)
Boka en demo

Var den här sidan till hjälp?