Middle
Mi az erőforrás-orientált modell (ROM)?
sobes.tech MI
Válasz az MI-től
Az erőforrás-orientált modell (Resourse-Oriented Model) egy API-tervezési megközelítés, ahol a rendszer fő entitásai erőforrásként vannak ábrázolva, amelyekkel standard műveletek hajthatók végre, például létrehozás, olvasás, frissítés és törlés (CRUD), a standard HTTP-módszerek használatával.
Fő elvek:
- Erőforrások: A rendszer fő összetevői, amelyeknek egyedi azonosítójuk (URI) van. Például "felhasználó", "rendelés", "termék".
- Egységes interfész: A műveletek végrehajtása az erőforrásokon a standard HTTP-módszerek (GET, POST, PUT, PATCH, DELETE) használatával.
- Erőforrások azonosítása: Minden erőforrásnak egyedi URI-je van.
- Ábrázolások: Az erőforrásoknak különböző ábrázolásai lehetnek (pl. JSON, XML), amelyek a kliens és a szerver között egyeztetettek.
- Kapcsolatok az erőforrások között (Hypermedia): Az erőforrások tartalmazhatnak hivatkozásokat kapcsolódó erőforrásokra, lehetővé téve a kliens számára az API-n belüli navigációt.
Példa:
// Felhasználók listájának lekérése
GET /users
// Egy adott felhasználó lekérése
GET /users/123
// Új felhasználó létrehozása
POST /users
Content-Type: application/json
{
"name": "Ivan",
"email": "ivan@example.com"
}
// Felhasználó frissítése
PUT /users/123
Content-Type: application/json
{
"name": "Ivan Petrov"
}
// Részleges frissítés
PATCH /users/123
Content-Type: application/json
{
"email": "ivan.petrov@example.com"
}
// Felhasználó törlése
DELETE /users/123
Előnyök:
- Egyszerűség és szabványosság: Könnyen érthető és használható a webes technológiák standard alkalmazásával.
- Skálázhatóság: alkalmas elosztott rendszerek építésére.
- Gyorsítótárazás: A reszurszintek gyorsítótárazásának lehetősége a teljesítmény növelése érdekében.
- Függetlenség a kliens és a szerver között: Az adatok megjelenítése és tárolása elkülönül.
Hátrányok:
- Komplex műveletek esetén nem mindig hatékony, amelyek nem illeszkednek a CRUD modellhez.
- Nem mindig alkalmas állapotfüggő (stateful) szolgáltatásokhoz.
A ROM az alapja a RESTful API-k építésének.