Sobes.tech
Junior

REST nima?

sobes.tech AI

AIdan javob

REST (Vakillash Taqdimoti) — bu tarqatilgan tizimlarni qurish uchun mo'ljallangan arxitektura uslubi bo'lib, u asosan veb-xizmatlarni loyihalashda qo'llaniladi. U veb-resurslar qanday o'zaro ta'sir qilishini belgilovchi prinsiplar va cheklovlar to'plamiga asoslangan.

REST ning asosiy prinsiplari:

  • Mijoz-server: Mijoz va server o'rtasida aniq vazifalar taqsimoti.
  • Stateless (holatsiz): Server mijozning holati haqida ma'lumotni saqlamaydi. Har bir so'rovda bajarish uchun zarur bo'lgan barcha ma'lumotlar bo'lishi kerak.
  • Cacheable (keshga olish mumkin): Mijozlar server javoblarini keshga olishi mumkin, bu ishlashni yaxshilash uchun. Server javobni keshga olish mumkinligini aniq ko'rsatadi.
  • Qavatli tizim: Mijoz o'rtacha qavat bilan (masalan, proksi, yuk balanslagich) o'zaro ta'sir qilishi mumkin, buni bilmasdan.
  • Talab bo'yicha kod (ixtiyoriy): Server mijozga bajariladigan kodni (masalan, JavaScript) yuborishi mumkin, bu mijozning funksionalligini kengaytiradi.
  • Bir xil interfeys: eng muhim prinsip bo'lib, quyidagilarni o'z ichiga oladi:
    • Resurslarni identifikatsiya qilish (URI).
    • Resurslarni vakilliklar orqali manipulyatsiya qilish (ma'lumotlarni ma'lum formatda almashish, masalan, JSON, XML).
    • O'z-o'zini ta'riflovchi xabarlar (xabarlar o'z ichiga olgan barcha ma'lumotlar bilan to'liq bo'lishi kerak).
    • HATEOAS (Hypermedia as the Engine of Application State): Mijoz server javoblaridagi gipermurojaatlarni ishlatib, ilova holatlari o'rtasida o'tishi mumkin.

RESTful API — bu REST uslubining veb-xizmatlar uchun amalga oshirilishi bo'lib, resurslar bilan ishlash uchun standart HTTP usullarini (GET, POST, PUT, DELETE) qo'llaydi.

// RESTful API da HTTP usullaridan foydalanish misoli
// Resursni olish
// GET /api/products/1

// Resursni yaratish
// POST /api/products
// Body: { "name": "Yangi Mahsulot", "price": 10.50 }

// Resursni yangilash
// PUT /api/products/1
// Body: { "name": "Yangilangan Mahsulot", "price": 11.00 }

// Resursni o'chirish
// DELETE /api/products/1