REST va RESTful API, farqi nimada?

REST va RESTful API, farqi nimada?

Ibragimov Diyorbek

REST (Representational State Transfer) — bu veb-servislarni yaratish uchun ishlab chiqilgan me'yorlar to‘plami bo‘lib, u resurslarga kirishni oddiy va tizimli usulda tashkil etishga yordam beradi. REST API esa shu tamoyillarga asoslangan API bo‘lib, unda ma'lumotlar HTTP orqali almashiladi. RESTful API — bu REST tamoyillariga to‘liq amal qiladigan API hisoblanadi.


Quyida REST API va RESTful API’larning farqini tushuntiraman.


REST API nima?

REST API (API — Application Programming Interface) bu REST tamoyillari asosida yaratilgan API bo‘lib, unda mijoz (client) va server (server) o‘rtasida ma'lumotlar HTTP orqali almashiladi. REST API ba'zi hollarda REST tamoyillariga qisman amal qilishi mumkin. Bunday API to‘liq RESTful hisoblanmaydi.


Misol uchun, REST API’da HTTP metodlari noto‘g‘ri ishlatilishi mumkin:

- GET so‘rovi ma'lumot olish o‘rniga ma'lumot yaratish uchun ishlatilsa.

- URL strukturalari aniq bo‘lmasligi, masalan, /getUserData kabi URL nomlari ishlatilsa, bu tamoyillarga zid bo‘ladi.


Bu holatda, API, REST tamoyillariga asoslangan, lekin barcha qoidalarni to‘liq bajarmaydi. Shuning uchun bunday API REST-API deb ataladi, shu bois u RESTful API hisoblanmaydi.


RESTful API nima?

RESTful API esa REST qoidalariga to‘liq amal qiladigan API’dir. Bunda API barcha asosiy tamoyillarni hisobga olgan holda ishlaydi. RESTful API’ning asosiy tamoyillari quyidagicha:


1. Mijoz-server arxitekturasi: Mijoz va server alohida ishlaydi. Mijoz faqat serverdan resurslarni so‘raydi, server esa ushbu resurslarni qaytaradi. Misol:

  - URL: GET /users/123

  - Javob: { "id": 123, "name": "John Doe" }


2. Stateless (holatni saqlamaslik): Har bir so‘rov mustaqil bo‘ladi va oldingi so‘rovlarga bog‘liq bo‘lmaydi. Har bir so‘rov o‘z ichiga barcha kerakli ma'lumotlarni oladi.

  - Masalan: Foydalanuvchi har safar so‘rov yuborganda, tokenni yuboradi. GET /orders/789 so‘rovi ham tokenni o‘z ichiga olishi kerak, chunki server so‘rovlar orasidagi holatni saqlamaydi.


3. Resurslarni URL orqali identifikatsiyalash: RESTful API’da har bir resurs o‘ziga xos URL orqali aniqlanadi. Bu URL’lar aniq va yaxshi strukturalangan bo‘lishi kerak:

  - Masalan: GET /products/15 so‘rovi 15-ID’li mahsulot haqida ma'lumot beradi.


4. HTTP metodlarini to‘g‘ri ishlatish:

  - GET — ma'lumot olish uchun.

  - POST — yangi resurs yaratish uchun.

  - PUT — mavjud resursni yangilash uchun.

  - DELETE — resursni o‘chirish uchun.

  

  Masalan, GET /products so‘rovi mahsulotlar ro‘yxatini qaytarishi kerak, POST /products esa yangi mahsulot qo‘shadi.


5. Uniform interfeys (bir xil interfeys): Har bir resurs bir xil usulda chaqiriladi. Misol: GET /users/123 har doim 123 foydalanuvchini ma'lumotlarini bir xil qaytaradi, boshqa xizmatlarda ham shu usul qo‘llaniladi.


6. JSON yoki XML formatidan foydalanish: RESTful API’lar odatda ma'lumotlarni JSON yoki XML formatida yuboradi va qabul qiladi. Masalan, GET /users/123 javobida JSON formatda ma'lumot kelishi mumkin:


{ "id": 123, "name": "John Doe", "email": "john@example.com"}


REST API va RESTful API o‘rtasidagi farqlar:

1. Tamoyillarga rioya qilish darajasi: REST API REST qoidalariga qisman amal qilishi mumkin, ammo RESTful API ushbu qoidalarga to‘liq amal qiladi. Masalan, REST API ba'zi qoidalarga mos kelmasligi mumkin, lekin RESTful API har doim qoidalarga to‘liq rioya qiladi.


2. Ishlash usuli: RESTful API qat'iy tamoyillar asosida ishlaydi va aniq strukturaga ega bo‘ladi. REST API esa ba'zan o‘zaro izchillikni saqlamasligi, noto‘g‘ri HTTP metodlarini qo‘llashi yoki URL strukturasida xatoliklarga yo‘l qo‘yishi mumkin.


Xulosa

Har bir RESTful API — bu REST API, lekin har bir REST API RESTful emas. REST API ba'zan qoidalarni buzishi yoki qisman amal qilishi mumkin, shu bilan birga RESTful API esa qoidalarga to‘liq rioya qiladigan, yaxshi tashkil etilgan API hisoblanadi. RESTful API’dan foydalanish yanada moslashuvchan va kengaytiriladigan tizim yaratishga yordam beradi.

Report Page