Bosh sahifa Wiki REST API

REST API

REST API — web ilovalarda client va server o‘rtasida ma’lumot almashish uchun ishlatiladigan API yaratish uslubi. REST inglizcha Representational State Transfer so‘zlarining qisqartmasi bo‘lib, resurslar bilan HTTP metodlari orqali ishlash tamoyiliga asoslanadi.

REST API’da har bir ma’lumot yoki obyekt resurs sifatida qaraladi. Masalan, foydalanuvchilar, mahsulotlar, buyurtmalar, maqolalar yoki kommentlar alohida resurs bo‘lishi mumkin.

Vazifasi

REST API client va server o‘rtasida aniq, tartibli va standart aloqa yaratadi.

REST API quyidagi vazifalarda ishlatiladi:

  • frontend va backendni bog‘lash;
  • mobile ilovani server bilan ulash;
  • ma’lumot olish;
  • yangi ma’lumot yaratish;
  • mavjud ma’lumotni yangilash;
  • ma’lumotni o‘chirish;
  • boshqa tizimlar bilan integratsiya qilish;
  • web xizmatlarni tashqi dasturlarga ochish.

Masalan, frontend mahsulotlar ro‘yxatini ko‘rsatish uchun backenddagi REST API’ga so‘rov yuboradi.

REST API qanday ishlaydi?

REST API odatda HTTP protokoli orqali ishlaydi. Client ma’lum bir URL manzilga so‘rov yuboradi, server esa unga javob qaytaradi.

Oddiy jarayon:

  • client API endpointga so‘rov yuboradi;
  • server so‘rov metodini tekshiradi;
  • kerakli resurs aniqlanadi;
  • ma’lumot database’dan olinadi yoki o‘zgartiriladi;
  • server javob tayyorlaydi;
  • javob clientga qaytariladi.

Masalan:

GET /api/products

Bu so‘rov mahsulotlar ro‘yxatini olish uchun ishlatiladi.

Resurs

REST API’da asosiy tushuncha — resurs. Resurs serverdagi ma’lum bir obyekt yoki ma’lumot guruhini bildiradi.

Resurslarga misollar:

  • users — foydalanuvchilar;
  • products — mahsulotlar;
  • orders — buyurtmalar;
  • articles — maqolalar;
  • comments — kommentlar;
  • categories — kategoriyalar.

REST API’da resurslar odatda URL orqali ifodalanadi.

Masalan:

/api/users

Bu endpoint foydalanuvchilar resursini bildiradi.

Endpoint

EndpointAPI ichidagi aniq manzil. Har bir endpoint ma’lum bir resurs yoki amal bilan bog‘liq bo‘ladi.

REST API endpointlariga misollar:

  • GET /api/users — foydalanuvchilar ro‘yxatini olish;
  • GET /api/users/5 — 5-ID foydalanuvchini olish;
  • POST /api/users — yangi foydalanuvchi yaratish;
  • PATCH /api/users/5 — 5-ID foydalanuvchi ma’lumotini qisman yangilash;
  • DELETE /api/users/5 — 5-ID foydalanuvchini o‘chirish.

Endpoint nomlari odatda resurs nomlari bilan yoziladi.

HTTP metodlari

REST API’da HTTP metodlari so‘rovning maqsadini bildiradi.

Asosiy HTTP metodlar:

  • GET — ma’lumot olish;
  • POST — yangi ma’lumot yaratish;
  • PUT — mavjud ma’lumotni to‘liq yangilash;
  • PATCH — mavjud ma’lumotning bir qismini yangilash;
  • DELETE — ma’lumotni o‘chirish.

Masalan, GET /api/articles maqolalar ro‘yxatini oladi, POST /api/articles esa yangi maqola yaratadi.

Request

Requestclient tomonidan serverga yuboriladigan so‘rov. REST API request ichida metod, URL, header, parametr va body bo‘lishi mumkin.

Request tarkibida quyidagilar uchraydi:

Masalan, yangi mahsulot yaratishda client POST /api/products endpointiga mahsulot nomi, narxi va tavsifini body orqali yuboradi.

Response

Responseserver tomonidan clientga qaytariladigan javob. REST API response odatda JSON formatida bo‘ladi.

Response tarkibida quyidagilar bo‘lishi mumkin:

  • status code;
  • response body;
  • headerlar;
  • xatolik xabari;
  • pagination ma’lumotlari;
  • token;
  • yaratilgan yoki yangilangan obyekt ma’lumoti.

Masalan, foydalanuvchilar ro‘yxati so‘ralganda server JSON massiv qaytarishi mumkin.

JSON

REST API’da ma’lumot almashish uchun eng ko‘p ishlatiladigan format — JSON. JSON yengil, o‘qilishi oson va ko‘plab dasturlash tillari tomonidan qo‘llab-quvvatlanadi.

JSON javob namunasi:

{"id": 1, "name": "Ali", "role": "admin"}

JSON quyidagi ma’lumot turlarini ifodalashi mumkin:

  • string;
  • number;
  • boolean;
  • array;
  • object;
  • null.

REST API’da request body ham ko‘pincha JSON formatida yuboriladi.

Status code

REST API javoblarida HTTP status code so‘rov natijasini bildiradi.

Ko‘p ishlatiladigan status codelar:

  • 200 OK — so‘rov muvaffaqiyatli bajarildi;
  • 201 Created — yangi resurs yaratildi;
  • 204 No Content — amal bajarildi, javob body yo‘q;
  • 400 Bad Request — so‘rov noto‘g‘ri;
  • 401 Unauthorized — autentifikatsiya kerak;
  • 403 Forbidden — ruxsat yo‘q;
  • 404 Not Found — resurs topilmadi;
  • 409 Conflict — ma’lumotlar to‘qnashuvi;
  • 500 Internal Server Errorserver ichki xatosi.

Status code client dasturga so‘rov natijasini aniqlashga yordam beradi.

Query parametrlar

Query parametrlar URL orqali qo‘shimcha ma’lumot uzatish uchun ishlatiladi. Ular odatda filter, qidiruv, sort va pagination uchun qo‘llanadi.

Misol:

GET /api/products?page=2&category=phone&sort=price

Bu yerda:

  • page=2 — ikkinchi sahifa;
  • category=phone — telefon kategoriyasi;
  • sort=price — narx bo‘yicha saralash.

Query parametrlar ? belgisi bilan boshlanadi va bir nechta parametr & belgisi bilan ajratiladi.

Pagination

Pagination — katta ro‘yxatlarni sahifalarga bo‘lib qaytarish usuli. REST API’da ko‘p ma’lumotni bir so‘rovda qaytarish server va client uchun og‘ir bo‘lishi mumkin.

Pagination uchun ishlatiladigan parametrlar:

  • page;
  • limit;
  • offset;
  • cursor;
  • per_page.

Masalan:

GET /api/articles?page=1&limit=20

Bu so‘rov birinchi sahifadagi 20 ta maqolani qaytaradi.

Stateless

REST API’ning muhim tamoyillaridan biri — stateless ishlash. Bu server har bir so‘rovni mustaqil tarzda qayta ishlashini anglatadi.

Stateless yondashuvda:

  • har bir request kerakli ma’lumotni o‘zida olib keladi;
  • server oldingi so‘rov holatiga tayanmaydi;
  • authentication token har bir kerakli so‘rovda yuborilishi mumkin;
  • tizimni kengaytirish osonlashadi.

Masalan, client foydalanuvchi tokenini har bir protected endpointga yuboradi. Server shu token asosida foydalanuvchini aniqlaydi.

Authentication

REST API’da authentication foydalanuvchi yoki client kimligini tekshirish uchun ishlatiladi.

Authentication usullari:

Masalan, foydalanuvchi login qilgandan keyin server JWT token qaytaradi. Client keyingi so‘rovlarda shu tokenni Authorization headerida yuboradi.

Authorization

Authorization foydalanuvchining qaysi amalni bajarishga ruxsati borligini belgilaydi.

Masalan:

  • oddiy foydalanuvchi faqat o‘z profilini ko‘ra oladi;
  • admin barcha foydalanuvchilarni boshqara oladi;
  • muallif o‘z maqolasini tahrirlashi mumkin;
  • mehmon faqat public ma’lumotlarni ko‘ra oladi.

REST API’da authorization odatda token, role, permission va policy orqali boshqariladi.

REST API va CRUD

REST API ko‘pincha CRUD amallari bilan bog‘lanadi. CRUD ma’lumotlar bilan ishlashdagi asosiy amallarni bildiradi.

CRUD amallari:

  • Create — yaratish;
  • Read — o‘qish;
  • Update — yangilash;
  • Delete — o‘chirish.

REST API’da bu amallar HTTP metodlari bilan ifodalanadi:

  • POST — Create;
  • GET — Read;
  • PUT yoki PATCH — Update;
  • DELETE — Delete.

REST API dokumentatsiyasi

REST API dokumentatsiyasi API’dan qanday foydalanishni tushuntiradi. Unda endpointlar, metodlar, parametrlar, request va response namunalari beriladi.

Dokumentatsiyada odatda quyidagilar bo‘ladi:

Swagger, OpenAPI, Redoc va Postman REST API dokumentatsiyasida keng ishlatiladi.

Dasturlashdagi o‘rni

REST API zamonaviy web va mobile ilovalarning asosiy aloqa qatlamlaridan biridir.

REST API quyidagi joylarda ishlatiladi:

  • frontend va backend aloqasi;
  • mobile ilova va server aloqasi;
  • admin panel;
  • internet do‘konlar;
  • CRM tizimlar;
  • to‘lov integratsiyalari;
  • Telegram botlar;
  • microservices;
  • SaaS platformalar;
  • public developer API’lar.

Masalan, React frontend REST API orqali Django yoki FastAPI backenddan ma’lumot olishi mumkin.

Bog‘liq tushunchalar

API, HTTP, HTTPS, JSON, Server, Client, URL, Endpoint, Authentication, Authorization, JWT, Database