Sobes.tech
Middle

Mis on ressursipõhine mudel (ROM)?

sobes.tech AI

Vastus AI-lt

Resurss-orienteeritud mudel (Resourse-Oriented Model) — see on lähenemisviis API disainile, kus süsteemi põhielemendid esitatakse kui ressursid, millele saab teha standardseid operatsioone, nagu loomine, lugemine, uuendamine ja kustutamine (CRUD), kasutades standardseid HTTP meetodeid.

Peamised põhimõtted:

  • Resursid: Süsteemi põhikomponendid, millel on unikaalne identifikaator (URI). Näiteks "kasutaja", "tellimus", "toode".
  • Ühtne liides: Standardsete HTTP-meetodite (GET, POST, PUT, PATCH, DELETE) kasutamine operatsioonide tegemiseks ressurssidele.
  • Resursside identifitseerimine: Igal ressursil on unikaalne URI.
  • Esitlused (Representations): Ressursid võivad omada erinevaid esitlusi (näiteks JSON, XML), mis on kooskõlas kliendi ja serveri vahel.
  • Seosed ressursside vahel (Hypermedia): Ressursid võivad sisaldada linke seotud ressurssidele, võimaldades kliendil navigeerida API kaudu.

Näide:

// Kasutajate nimekirja saamine
GET /users

// Konkreetse kasutaja saamine
GET /users/123

// Uue kasutaja loomine
POST /users
Content-Type: application/json

{
  "name": "Jaan",
  "email": "jaan@example.com"
}

// Kasutaja uuendamine
PUT /users/123
Content-Type: application/json

{
  "name": "Jaan Tamm"
}

// Osaline kasutaja uuendamine
PATCH /users/123
Content-Type: application/json

{
  "email": "jaan.tamm@example.com"
}

// Kasutaja kustutamine
DELETE /users/123

Eelised:

  • Lihtne ja standardne: Lihtne mõista ja kasutada, rakendades standardseid veebitehnoloogiaid.
  • Skaleeritavus: Sobib hajutatud süsteemide ehitamiseks.
  • Vahemälu: Võimalus vahemällu salvestada ressursside esitlusi, et parandada jõudlust.
  • Klientide ja serverite sõltumatus: Andmete esitlus on eraldatud nende salvestamisest ja töötlemisest.

Puudused:

  • Võib olla ebaefektiivne keerukate operatsioonide jaoks, mis ei mahu CRUD-i raamidesse.
  • Ei pruugi alati sobida stateful-teenustele.

ROM on aluseks RESTful API-de ehitamisel.