Tugma aylanmoqda, ilova xato ko‘rsatmoqda va o‘n daqiqa to‘ldirgan shaklingiz yo‘qoldi. Bilmayotganingiz — ulanish uzilishidan oldin yozuv yetib bordimi. Shu noma’lum narsaga muvaffaqiyatsizlik deb qarash takroriy izohlar, ikkilangan buyurtmalar va qayta-qayta keladigan yordam chiptalarini keltirib chiqaradi.

Belgilangan tartibda tiklang: matnni saqlab qoling, natijani toping va shundan keyingina ikkinchi yuborishga ruxsat bor-yo‘qligini hal qiling.

Matn va vaqt belgisidan boshlang

Boshqa narsaga tegishdan oldin tarkibni sahifadan nusxalang, brauzer hali maydonda ushlab turgan qoralamani ham qo‘shib. Vaqtni, qaysi sahifada bo‘lganingizni va qilgan amalingizni yozib qo‘ying, chunki qolgan tekshiruvni aynan shu uch tafsilot amalga oshiradi. Ilova hali ochiq bo‘lsa, tarmoq yozuvini o‘qiguningizcha ochiq qoldiring. Matnni saqlash hech narsaga turmaydi, uni yo‘qotish esa butun vazifaga turadi.

Keyin haqiqatan kuzata oladigan ikki xil nosozlikni ajrating. So‘rov o‘rtasida uzilgan ulanish va xato bilan javob bergan server tarmoq panelida boshqacha ko‘rinadi va ilovaning qarori haqida faqat ikkinchisi gapiradi.

Natijani ilovaning o‘z ko‘rinishidan qidiring

Natijani ko‘rsatadigan o‘qish ko‘rinishini qayta yuklang: izohlar ro‘yxati, buyurtmalar tarixi, chiptalar navbati yoki tahrirlayotgan yozuvingiz. Eng oxirgi yozuvga emas, hisob, manzil, vaqt va tarkibga qarab solishtiring, chunki sizdan keyin boshqa birov yozgan bo‘lishi mumkin. Fon vazifasi uchun ulanish sinovi sifatida yangi amal yaratish o‘rniga mavjud havola va uning holatini qidiring.

Natija joyida bo‘lsa, ishingiz tugadi va xato yozuvga emas, javob yo‘liga tegishli. Bo‘lmasa, ilova uni hali tasdiqlamagan bo‘lishi mumkinligini saqlab qoling: navbatdagi ish, kechikkan o‘qish ko‘rinishi yoki orqada qolgan replika muvaffaqiyatli yozuvni bir muddat yashirishi mumkin.

Xulosa chiqarishdan oldin unga aniq ikkinchi qarash bering va ikkala tekshiruv vaqtini yozib qo‘ying. Yigirma soniya oralig‘idagi ikki tekshiruv o‘n daqiqa oralig‘idagi ikki tekshiruvdan ancha zaif dalil.

Ikkinchi yuborish xavfsizmi-yo‘qmi, hal qiling

Javob amalga bog‘liq, sabringizga emas. HTTP bir xil ko‘zlangan ta’sir bilan takrorlash mumkin bo‘lgan usullarni mumkin bo‘lmaganlaridan ajratadi va ikkinchi turdagi avtomatik takrorlashdan qaytaradi, agar semantika ruxsat berishi ma’lum bo‘lmasa. Izoh yaratish, buyurtma berish va to‘lov yuborish odatda ikkinchi guruhda bo‘ladi, shuning uchun muvaffaqiyatli ko‘ringan ikkinchi bosish birinchisi haqida hech narsa demaydi.

Mijozni siz qo‘llab-quvvatlasangiz, API hujjatlashtirgan qayta urinish yoki idempotentlik mexanizmidan foydalaning va har bir urinish uchun yangi kalit yaratish o‘rniga uni o‘sha mantiqiy amalga bog‘lang. Kuzatish uchun ishlatiladigan so‘rov identifikatori, server uni shunday qabul qilmasa, takrorlarni bostirish kaliti emas.

curl -i -X POST https://api.example.net/v1/orders \
  -H "Idempotency-Key: 6f1c2a94-3b7e-4a10-9c22-5d0e8f7b1a63" \
  -H "Content-Type: application/json" \
  --data @order.json

Kalit faqat xizmat uni amal bilan birga saqlasa va takrorda asl natijani qaytarsa yordam beradi. Ishlab chiqarishda unga tayanishdan oldin bu xatti-harakatni sinov oxirgi nuqtasida tekshiring.

Yana biror narsa bosishdan oldin dalillar to‘plang

Xato skrinshoti o‘rniga tarmoq yozuvini saqlang. So‘rov usuli, URL, javob yoki vaqt chegarasi va qachon sodir bo‘lgani — administrator ilova yozuvlari bilan bog‘lay oladigan narsa shu. Yozuvni buyruq sifatida eksport yoki nusxalash faqat keyin nusxadan cookie fayllar, avtorizatsiya sarlavhalari va har qanday shaxsiy tarkibni olib tashlasangiz mumkin. O‘z sessiyangizni butun qoldiring va hech qachon ushlangan, ishonchnomalar bor so‘rovni qisqa yo‘l sifatida qayta o‘ynatmang.

Xizmat egasidan bitta aniq savol so‘rang: shu tarkib bilan shu vaqtda amal muvaffaqiyatli bo‘ldimi va unga havola bormi? Bu savolning javobi bor, "sayt buzildimi" savolining esa yo‘q.

Mashqning maqsadi — amal aynan bir marta sodir bo‘lganini aniqlash. Yopishingiz mumkin bo‘lgan xato xabari ishonishingiz mumkin bo‘lgan yozuv bilan bir xil emas va yana biror narsa yuborishdan oldin sizga ikkinchisi kerak.

O'xshash maqolalar