I 2000 ble det utviklet en ny standard for interaksjon mellom klienter og servere innen design av programvaregrensesnittarkitektur. Den ble kalt REST. Hovedinitiativtakeren til dette konseptet var Roy Fielding, en av utviklerne av HTTP-protokollen. I dagens verden blir REST API et stadig mer populært verktøy for datautveksling, noe som gir effektiv interaksjon mellom alle typer applikasjoner.
Et RESTful API er en liste med prinsipper og regler for å organisere samspillet mellom en klient og en server. Det gjør det mulig for utviklere å lage webapplikasjoner som er enkle å endre og skalere. Den grunnleggende ideen bak REST er å representere ressurser som er tilgjengelige ved hjelp av unike URI-identifikatorer, og manipulere dem ved hjelp av standard HTTP-metoder.
Hva er et API? Det er et grensesnitt som hjelper ulike programmer med å kommunisere med hverandre. Det definerer hvordan forespørsler kan gjøres og hvilke svar som kan mottas. API fungerer som grunnlag for integrering av ulike systemer og er en grunnleggende del av dagens applikasjonsutvikling.
Hva er REST? Det er en arkitektonisk stil basert på prinsipper som gjør anvendelsen av webtjenester praktisk og lett å forstå. Den er basert på HTTP-protokoller og bruker standardmetoder, som vil bli dekonstruert i det følgende. Hver ressurs som er tilgjengelig via API-et har sin egen unike identifikator (URI), noe som gjør det lettere å få tilgang til den.
De viktigste er:
Å bruke dette verktøyet gir mange fordeler.
Til tross for de åpenbare fordelene med REST, finnes det også andre teknologier på markedet, for eksempel SOAP og GraphQL. Mens førstnevnte brukes i spesifikke applikasjoner og har sine egne funksjoner, er sistnevnte utviklet av Facebook. GraphQL er et alternativ til REST. Det er mer egnet for store prosjekter.
Prosessen med klient-server-interaksjon kan deles inn i flere trinn:
Klassiske HTTP-metoder brukes til å arbeide med ressurser:
GET
: Brukes til å hente data (for eksempel GET /cities
returnerer en liste over byer);POST
: Brukes til å opprette nye ressurser (f.eks. POST /istanbul
legger til en ny kafé i Istanbul);PUT
: Brukes til å oppdatere eksisterende ressurser (f.eks. PUT /cities
endrer listen over byer);DELETE
: Brukes til å slette ressurser (f.eks. DELETE /istanbul
sletter en kafé i Istanbul).Hver HTTP-forespørsel returnerer en statuskode som angir resultatet av operasjonen. En kode som starter med 2, indikerer vellykket utførelse, mens koder med 4 eller 5 indikerer feil.
REST API har blitt en standard innen utvikling av webtjenester, og det gir brukerne et godt verktøy for å bygge fleksible og skalerbare løsninger. Prinsippene og fordelene har bidratt til at det er blitt svært populært og brukes i et bredt spekter av applikasjoner, fra små webapplikasjoner til komplekse distribuerte systemer. I denne utvidede introduksjonen til REST API ser vi nærmere på hovedkomponentene, sammenligner det med andre teknologier, diskuterer bruken av REST i praksis og kommer inn på utviklingsutsiktene.
Når man samhandler med REST API-er, er det viktig å ta hensyn til hvilke dataformater som brukes. Det vanligste formatet er JSON (javaScript), som er enkelt å lese og skrive, noe som gjør det ideelt for dataoverføring. Andre formater som XML og HTML brukes imidlertid også noen ganger. Valget av dataformat kan avhenge av applikasjonens krav og utviklerens preferanser. JSON-formatet støtter komplekse datastrukturer og gir økonomisk bruk av båndbredde, noe som er en annen fordel med REST API.
Sikkerhet er et viktig aspekt når man jobber med REST API-er. En av autentiseringsmetodene er bruk av tokens. Dette gir sikker tilgang til beskyttede ressurser. En av de vanligste metodene er bruk av JWT-tokens. Denne metoden gir klienten tilgang til API-et i en viss tid etter autentisering. Serveren trenger ikke å lagre status, noe som forsterker "no state"-konseptet i REST.
I tillegg kan slik autentisering utvides med OAuth 2.0. Dette gir et ekstra sikkerhetslag og forenkler integrasjonen med sosiale medier og andre plattformer.
Med den økende populariteten til smarttelefoner har REST API blitt et viktig verktøy for utviklere som bygger mobilapplikasjoner. Ved hjelp av REST API kan applikasjoner samhandle med eksterne servere, motta og oppdatere data i sanntid. Derfor er det mulig å lage komplekse applikasjoner: budbringere, sosiale nettverk og andre programvareløsninger som krever høyhastighets tilgang til informasjon.
For å få en bedre forståelse av REST API, la oss se på et hypotetisk eksempel på arbeid med et API for biblioteksadministrasjon. Anta at vi har et RESTful API som lar oss utføre følgende handlinger:
GET-forespørsel
til /books
for å få informasjon om alle tilgjengelige bøker;POST-forespørsel
til /books
med data om en ny bok i JSON-format;PUT-forespørsel
til /books/{id}
, der {id}
er en unik identifikator for boken;DELETE-forespørsel
kan sendes til samme URI for å utføre operasjonen.Disse enkle eksemplene viser hvordan effektiv ressursforvaltning kan realiseres ved hjelp av REST API-er.
Det finnes mange funksjoner og biblioteker som gjør det enklere å samarbeide. Postman er for eksempel et populært program som gjør det mulig for utviklere å sende forespørsler, teste og analysere svar. Andre verktøy, som Swagger, gjør det mulig å dokumentere API-er og automatisk generere kode i en rekke programmeringsspråk.
I Python kan du bruke biblioteker (Requests) som gir et enkelt grensesnitt for å sende HTTP-forespørsler og behandle svarene. I javascript, spesielt innen frontend-utvikling, kan du bruke Fetch API eller Axios.
REST API er fortsatt et av de mest populære verktøyene for klient-server-interaksjon. Prinsippene gir fleksibilitet, skalerbarhet og brukervennlighet, noe som gjør det til en ideell løsning for de fleste moderne webapplikasjoner. Til tross for fremveksten av alternativer (GraphQL.)