Middle
Resursga yo'naltirilgan model (ROM) nima?
sobes.tech AI
AIdan javob
Resurslarga yo'naltirilgan model (Resourse-Oriented Model) — API dizayni uchun yondashuv bo'lib, unda tizimning asosiy ob'ektlari resurslar sifatida taqdim etiladi, ular bilan standart CRUD (yaratish, o'qish, yangilash, o'chirish) operatsiyalarini bajarish mumkin, standart HTTP metodlari yordamida.
Asosiy tamoyillar:
- Resurslar: Tizimning asosiy komponentlari bo'lib, ularning yagona URI identifikatori mavjud. Masalan, "foydalanuvchi", "buyurtma", "mahsulot".
- Birxillik interfeys: Resurslar ustida operatsiyalarni bajarish uchun standart HTTP metodlari (GET, POST, PUT, PATCH, DELETE) qo'llaniladi.
- Resurslarni identifikatsiya qilish: Har bir resursning yagona URI'si bor.
- Taqdimotlar: Resurslar turli taqdimotlarga ega bo'lishi mumkin (masalan, JSON, XML), ular mijoz va server o'rtasida kelishiladi.
- Resurslar o'rtasidagi bog'lanishlar (Hypermedia): Resurslar bog'langan resurslarga havolalarni o'z ichiga olishi mumkin, bu esa mijozga API bo'ylab navigatsiya qilish imkonini beradi.
Misol:
// Foydalanuvchilar ro'yxatini olish
GET /users
// Aniq bir foydalanuvchini olish
GET /users/123
// Yangi foydalanuvchi yaratish
POST /users
Content-Type: application/json
{
"name": "Ivan",
"email": "ivan@example.com"
}
// Foydalanuvchini yangilash
PUT /users/123
Content-Type: application/json
{
"name": "Ivan Petrov"
}
// Foydalanuvchini qisman yangilash
PATCH /users/123
Content-Type: application/json
{
"email": "ivan.petrov@example.com"
}
// Foydalanuvchini o'chirish
DELETE /users/123
Afzalliklari:
- Oddiylik va standartlashtirish: Standart web texnologiyalaridan foydalanish orqali tushunish va foydalanish oson.
- Kengaytiriladiganlik: tarqatilgan tizimlarni qurish uchun mos.
- Kesh qilish imkoniyati: Resurslarning taqdimotlarini kesh qilish imkoniyati bilan ishlashni yaxshilash.
- Mijoz va server o'rtasida mustaqillik: Ma'lumotlarni taqdim etish va ularni saqlash va ishlashdan ajratish.
Kamchiliklari:
- Murakkab operatsiyalar uchun samarali bo'lmasligi mumkin, ular CRUD ga mos kelmaydi.
- Har doim holatga ega xizmatlar uchun mos emas.
ROM RESTful API qurilishining asosidir.