Sobes.tech
Junior

Šta je REST?

sobes.tech АИ

Одговор од АИ

REST (Predstavnička razmena stanja) je arhitektonski stil za izgradnju distribuiranih sistema, koji se uglavnom koristi pri projektovanju veb servisa. Osnovan je na skupu principa i ograničenja koja definišu kako veb resursi međusobno komuniciraju.

Ključni principi REST-a:

  • Klijent-server: Jasno razdvajanje odgovornosti između klijenta i servera.
  • Bezdržavno (stateless): Server ne čuva informacije o stanju klijenta između zahteva. Svaki zahtev sadrži sve potrebne informacije za obradu.
  • Kešabilno: Klijenti mogu keširati odgovore servera radi poboljšanja performansi. Server eksplicitno navodi da li odgovor može biti keširan.
  • Slojeviti sistem: Klijent može komunicirati sa posrednim slojem (npr. proxy, balansator opterećenja) bez da to zna.
  • Kod na zahtev (opciono): Server može prenositi izvršni kod klijentu (npr. JavaScript), proširujući funkcionalnost klijenta.
  • Ujednačen interfejs: Najvažniji princip, koji uključuje sledeća ograničenja:
    • Identifikaciju resursa (URI).
    • Manipulaciju resursima putem reprezentacija (razmena podataka u određenom formatu, npr. JSON, XML).
    • Samoopisne poruke (poruke sadrže sve potrebne informacije za njihovo razumevanje).
    • HATEOAS (Hypermedia kao motor stanja aplikacije): Klijent prelazi između stanja aplikacije koristeći hiperveze sadržane u odgovorima servera.

RESTful API je implementacija REST stila za veb servise, koja koristi standardne HTTP metode (GET, POST, PUT, DELETE) za rad sa resursima.

// Primer korišćenja HTTP metoda u RESTful API
// Dobavljanje resursa
// GET /api/products/1

// Kreiranje resursa
// POST /api/products
// Telo: { "name": "Novi proizvod", "price": 10.50 }

// Ažuriranje resursa
// PUT /api/products/1
// Telo: { "name": "Ažurirani proizvod", "price": 11.00 }

// Brisanje resursa
// DELETE /api/products/1