tgoop.com/davron_coder/1312
Last Update:
REST API’larda “Idempotency” nima va nega u muhim? 🔁
Ko‘pchilik REST API yozishda GET, POST, PUT, DELETE kabi metodlardan foydalanadi.
Lekin ular orasida bitta narsa ko‘p e’tibordan chetda qoladi: idempotency.
🧠 Idempotency nima?
Idempotency — API’ga bir xil so‘rovni bir necha marta yuborganingizda ham tizim holati o‘zgarmasligi degani.
Masalan:
DELETE /users/123
– 1-marta yuboriladi → foydalanuvchi o‘chadi
– 2-marta yuboriladi → tizim xato bermaydi, lekin foydalanuvchi yo‘q
Demak, bu DELETE — idempotent.
💥 POST idempotent emas. Nega?
POST /orders
– 1-marta → yangi buyurtma
– 2-marta → yana yangi buyurtma
Shu sababli POST so‘rovlar ehtiyotkorlik bilan yozilishi kerak.
⚠️ Haqiqiy muammo:
Foydalanuvchi “To‘lov qilish” tugmasini bosdi.
Lekin networkda xatolik bo‘ldi. U qayta bosdi.
→ Natijada: 2 marta to‘lov ketdi!
Bu yerda idempotency bo‘lmaganligi jiddiy muammoga olib keldi.
✅ Yechim: Idempotency-Key
Professional API’lar, masalan Stripe, GitHub, Twilio — POST so‘rovlar bilan Idempotency-Key yuborishni talab qiladi:
POST /payments
Idempotency-Key: 123e456
Agar ayni shu key bilan so‘rov ilgari kelgan bo‘lsa —
→ server eski natijani qaytaradi, yangi narsa yaratmaydi.
🔚 Xulosa:
– GET, PUT, DELETE — odatiy idempotent metodlar
– POST — odatda idempodent emas, ammo Idempotency-Key bilan idempotent qilish mumkin
– Bu API’ngizni xavfsiz, barqaror (consistent) va professional qiladi
📌@otabekbobomurodov99
BY Davronbek | SWE 🪐
Share with your friend now:
tgoop.com/davron_coder/1312
