A RESTful API(Representational State Transfer) er en type arkitektur og protokoll for å designe og administrere applikasjonsprogrammeringsgrensesnitt(API) i distribuerte systemer. RESTful API er bygget på de grunnleggende prinsippene for arkitekturen REST, en metode beskrevet av Roy Fielding i sin avhandling fra 2000.
Nøkkelegenskaper for RESTful API inkluderer:
Adressebasert tilgang
Hver ressurs er representert av en URL(Uniform Resource Locator), som lar systemer kommunisere gjennom HTTP-forespørsler som GET, POST, PUT og DELETE.
Statsløs tilgang
Hver forespørsel fra klienten inneholder nok informasjon til at serveren forstår forespørselen uten å stole på tidligere tilstandsinformasjon. Serveren lagrer ikke informasjon om klientens tilstand mellom forespørsler.
HTTP-metodebruk
RESTful API bruker HTTP-metoder(GET, POST, PUT, DELETE) for å definere formålet med hver forespørsel. Bruk for eksempel GET for å hente informasjon, POST for å lage nye data, PUT for å oppdatere og SLETT for å fjerne.
Bruk av medietyper
Data overføres over nettverket ved hjelp av formater som JSON, XML eller andre tilpassede formater. Hver forespørsel må spesifisere ønsket dataformat.
Ressursidentifikasjon
Ressurser identifiseres av unike URL-er, som lar klienter få tilgang til ressurser ved å bruke banebaserte identifikatorer.
Bufferbar
Forespørsler og svar fra en RESTful API kan lagres i klient- eller proxy-serverminnet for å optimalisere ytelsen.
Lagdelt system
Arkitekturen REST tillater tillegg av mellomliggende lag som lastbalansere eller proxy-servere for å forbedre skalerbarhet og administrasjon.
RESTful APIer er mye brukt i web- og mobilapplikasjonsutvikling, noe som muliggjør effektiv kommunikasjon og datadeling mellom applikasjoner. Store webtjenester som Facebook, Twitter og Google bruker også RESTful-arkitekturen for å tilby APIer for utviklere.