Az A RESTful API(Representational State Transfer) egyfajta architektúra és protokoll az alkalmazásprogramozási felületek(API-k) tervezésére és kezelésére elosztott rendszerekben. RESTful API Az építészet alapelveire épül REST, ezt a módszert Roy Fielding ismertette 2000-ben megjelent disszertációjában.
A legfontosabb jellemzők a RESTful API következők:
Cím alapú hozzáférés
Minden erőforrást egy URL(Uniform Resource Locator) jelöl, amely lehetővé teszi a rendszerek számára, hogy HTTP-kérelmeken keresztül kommunikáljanak, például GET, POST, PUT és DELETE.
Állam nélküli hozzáférés
Az ügyféltől érkező minden kérés elegendő információt tartalmaz ahhoz, hogy a szerver megértse a kérést anélkül, hogy a korábbi állapotinformációkra támaszkodna. A szerver a kérések között nem tárol információt a kliens állapotáról.
HTTP metódus használata
RESTful API HTTP metódusokat(GET, POST, PUT, DELETE) használ az egyes kérések céljának meghatározásához. Használja például GET információk lekéréséhez, POST új adatok létrehozásához, PUT a frissítéshez és DELETE az eltávolításhoz.
Médiatípusok használata
Az adatok továbbítása a hálózaton keresztül történik, például JSON, XML vagy más egyéni formátumok használatával. Minden kérésnél meg kell adni a kívánt adatformátumot.
Erőforrás azonosítás
Az erőforrásokat egyedi URL-ek azonosítják, ami lehetővé teszi az ügyfelek számára, hogy elérési út alapú azonosítók használatával hozzáférjenek az erőforrásokhoz.
Gyorsítótárazható
A teljesítmény optimalizálása érdekében a kérések és válaszok a RESTful API kliens vagy proxyszerver memóriájában tárolhatók.
Réteges rendszer
Az REST architektúra lehetővé teszi közvetítő rétegek, például terheléselosztók vagy proxyszerverek hozzáadását a méretezhetőség és a kezelhetőség javítása érdekében.
A RESTful API-kat széles körben használják a webes és mobilalkalmazások fejlesztésében, lehetővé téve az alkalmazások közötti hatékony kommunikációt és adatmegosztást. A főbb webszolgáltatások, például a Facebook, a Twitter és a Google szintén a RESTful architektúrát használják API-k biztosítására a fejlesztők számára.