A RESTful API(Representational State Transfer) është një lloj arkitekture dhe protokolli për dizajnimin dhe menaxhimin e ndërfaqeve të programimit të aplikacioneve(API) në sistemet e shpërndara. RESTful API është ndërtuar mbi parimet themelore të REST arkitekturës, një metodë e përshkruar nga Roy Fielding në disertacionin e tij të vitit 2000.
Karakteristikat kryesore të RESTful API përfshijnë:
Qasje e bazuar në adresë
Çdo burim përfaqësohet nga një URL(Uniform Resource Locator), duke lejuar sistemet të komunikojnë përmes kërkesave HTTP si GET, POST, PUT dhe DELETE.
Akses pa shtetësi
Çdo kërkesë nga klienti përmban informacion të mjaftueshëm që serveri të kuptojë kërkesën pa u mbështetur në informacionin e gjendjes së mëparshme. Serveri nuk ruan informacione për gjendjen e klientit ndërmjet kërkesave.
Përdorimi i metodës HTTP
RESTful API përdor metodat HTTP(GET, POST, PUT, DELETE) për të përcaktuar qëllimin e secilës kërkesë. Për shembull, përdorni GET për të marrë informacion, POST për të krijuar të dhëna të reja, PUT për të përditësuar dhe DELETE për të hequr.
Përdorimi i llojeve të mediave
Të dhënat transmetohen përmes rrjetit duke përdorur formate të tilla si JSON, XML ose formate të tjera të personalizuara. Çdo kërkesë duhet të specifikojë formatin e dëshiruar të të dhënave.
Identifikimi i burimeve
Burimet identifikohen nga URL unike, duke i lejuar klientët të aksesojnë burimet duke përdorur identifikues të bazuar në shtigje.
E fshehtë
Kërkesat dhe përgjigjet nga një RESTful API mund të ruhen në kujtesën e klientit ose serverit proxy për të optimizuar performancën.
Sistemi me shtresa
Arkitektura REST lejon shtimin e shtresave ndërmjetëse si balancuesit e ngarkesës ose serverët proxy për të rritur shkallëzueshmërinë dhe menaxhimin.
API-të RESTful përdoren gjerësisht në zhvillimin e aplikacioneve në ueb dhe celular, duke mundësuar komunikim efikas dhe ndarje të të dhënave ndërmjet aplikacioneve. Shërbimet kryesore të uebit si Facebook, Twitter dhe Google përdorin gjithashtu arkitekturën RESTful për të ofruar API për zhvilluesit.