Sobes.tech
Junior

REST API nima?

sobes.tech AI

AIdan javob

REST API - bu taqsimlangan tizimlarni qurish uchun arxitektura uslubi. REST ning asosiy prinsiplari:

  • Statelessness: Mijozdan serverga har bir so'rovda uni ishlash uchun zarur bo'lgan barcha ma'lumotlar bo'lishi kerak. Server so'rovlar orasida mijoz holatini saqlamaydi.
  • Client-Server: Mijoz va server o'rtasida aniq vazifalar bo'linishi. Mijoz so'rov yuboradi, server uni ishlaydi.
  • Cacheable: Server javoblarni mijoz yoki vositachilar tomonidan keshga olish mumkinligini ko'rsatishi kerak.
  • Layered System: Mijoz to'g'ridan-to'g'ri yakuniy server bilan aloqada bo'lishi shart emas; u vositachilar (proksi, yuk balanslagichlar) orqali aloqada bo'lishi mumkin.
  • Uniform Interface: Mijoz va server o'rtasida yagona va standartlashtirilgan o'zaro ta'sir usuli. Bu prinsip quyidagilarni o'z ichiga oladi:
    • Resources identification: Resurslar (ma'lumotlar) URL orqali aniqlanadi.
    • Manipulation of resources through representations: Mijoz resurslar bilan o'zaro aloqada bo'ladi, ularning vakilliklarini (masalan, JSON, XML) oladi va o'zgartirish uchun yangi vakilliklarni yuboradi.
    • Self-descriptive messages: Har bir xabar uni qanday ishlashini tushunish uchun etarli ma'lumotlarni o'z ichiga oladi.
    • HATEOAS (Hypertext As The Engine Of Application State): Resurslar bog'langan resurslarga va mavjud harakatlarga havolalarni (hiperlinklar) o'z ichiga olishi kerak.

REST API odatda resurslar ustida operatsiyalarni bajarish uchun standart HTTP metodlarini ishlatadi:

  • GET: Resurs yoki resurslar kolleksiyasini olish.
  • POST: Yangi resurs yaratish.
  • PUT: Mavjud resursni to'liq yangilash.
  • PATCH: Mavjud resursni qisman yangilash.
  • DELETE: Resursni o'chirish.

Resursning JSON vakilligi misoli:

{
  "id": 1, // Identifikator
  "name": "Resource Name", // Resurs nomi
  "description": "Detailed description of the resource." // Resurs tavsifi
}

REST API testlari quyidagilarni o'z ichiga oladi:

  • Funktsionallik (so'rovlar uchun javoblarning to'g'riligi).
  • Xatoliklarni boshqarish.
  • Ishlash tezligi.
  • Xavfsizlik.
  • Hujjat bilan moslik.