Sobes.tech
Middle

Šta je model orijentisan na resurse (ROM)?

sobes.tech АИ

Одговор од АИ

Model zasnovan na resursima (Resourse-Oriented Model) je pristup dizajnu API-ja gde su osnovne entitete sistema predstavljene kao resursi, sa kojima se mogu izvršiti standardne operacije kao što su kreiranje, čitanje, ažuriranje i brisanje (CRUD), koristeći standardne HTTP metode.

Ključni principi:

  • Resursi: Glavni sastavni delovi sistema, koji imaju jedinstveni identifikator (URI). Na primer, "korisnik", "porudžbina", "proizvod".
  • Ujednačen interfejs: Korišćenje standardnih HTTP metoda (GET, POST, PUT, PATCH, DELETE) za operacije nad resursima.
  • Identifikacija resursa: Svaki resurs ima jedinstveni URI.
  • Predstavljanja: Resursi mogu imati različite predstave (npr. JSON, XML), koje se dogovaraju između klijenta i servera.
  • Veze između resursa (Hypermedia): Resursi mogu sadržavati linkove ka povezanim resursima, omogućavajući klijentu navigaciju kroz API.

Primer:

// Dobijanje liste korisnika
GET /users

// Dobijanje određenog korisnika
GET /users/123

// Kreiranje novog korisnika
POST /users
Content-Type: application/json

{
  "name": "Ivan",
  "email": "ivan@example.com"
}

// Ažuriranje korisnika
PUT /users/123
Content-Type: application/json

{
  "name": "Ivan Petrov"
}

// Delimično ažuriranje korisnika
PATCH /users/123
Content-Type: application/json

{
  "email": "ivan.petrov@example.com"
}

// Brisanje korisnika
DELETE /users/123

Prednosti:

  • Jednostavnost i standardizacija: Lako za razumevanje i korišćenje zahvaljujući primeni standardnih web tehnologija.
  • Skalabilnost: Pogodno za izgradnju distribuiranih sistema.
  • Keširanje: Mogućnost keširanja predstava resursa radi poboljšanja performansi.
  • Nezavisnost klijenta i servera: Odvajanje prikaza podataka od njihovog skladištenja i obrade.

Nedostaci:

  • Može biti neefikasno za složene operacije koje se ne uklapaju u CRUD.
  • Nije uvek pogodno za usluge sa stanjem (stateful).

ROM je osnova za izgradnju RESTful API-ja.