A RESTful API(Representational State Transfer) je vrsta arhitekture i protokola za projektiranje i upravljanje sučeljima za programiranje aplikacija(API) u distribuiranim sustavima. RESTful API izgrađena je na temeljnim principima arhitekture REST, metodi koju je opisao Roy Fielding u svojoj disertaciji iz 2000.
Ključne karakteristike RESTful API uključuju:
Pristup temeljen na adresi
Svaki resurs predstavljen je URL-om(Uniform Resource Locator), koji sustavima omogućuje komunikaciju putem HTTP zahtjeva kao što su GET, POST, PUT i DELETE.
Pristup bez državljanstva
Svaki zahtjev od klijenta sadrži dovoljno informacija da poslužitelj može razumjeti zahtjev bez oslanjanja na informacije o prethodnom stanju. Poslužitelj ne pohranjuje informacije o stanju klijenta između zahtjeva.
Upotreba HTTP metode
RESTful API koristi HTTP metode(GET, POST, PUT, DELETE) za definiranje svrhe svakog zahtjeva. Na primjer, koristite GET za dohvaćanje informacija, POST za stvaranje novih podataka, PUT za ažuriranje i DELETE za uklanjanje.
Korištenje vrsta medija
Podaci se prenose preko mreže koristeći formate kao što su JSON, XML ili druge prilagođene formate. Svaki zahtjev mora navesti željeni format podataka.
Identifikacija izvora
Resursi su identificirani jedinstvenim URL-ovima, što klijentima omogućuje pristup resursima pomoću identifikatora temeljenih na stazi.
Mogućnost predmemoriranja
Zahtjevi i odgovori od RESTful API mogu se pohraniti u memoriju klijenta ili proxy poslužitelja radi optimizacije performansi.
Slojeviti sustav
Arhitektura REST dopušta dodavanje posredničkih slojeva kao što su balanseri opterećenja ili proxy poslužitelji kako bi se poboljšala skalabilnost i upravljivost.
RESTful API-ji naširoko se koriste u razvoju web i mobilnih aplikacija, omogućujući učinkovitu komunikaciju i dijeljenje podataka između aplikacija. Glavne web usluge poput Facebooka, Twittera i Googlea također koriste RESTful arhitekturu za pružanje API-ja za programere.