Integratsiyalar
Telegram-botni tashqi API bilan integratsiya qilish
Eʼlon qilingan
Vazifa
Bot tashqi tizim hodisalarini olishi va unga buyurtma, holat hamda rad etishni berishi kerak. Manzil va hodisa belgisi oldindan aytiladi.
Muammo
Xizmat uzilish bilan javob berdi, soʻrov yana yuborildi va hisobda ikkita buyurtma paydo boʻldi. Yoʻqolgan javobni boʻlmagan buyurtmadan ajratib boʻlmaydi.
Haqiqiy ssenariy
Tashqi tizim bot manziliga xabar qiladi: buyurtma toʻlandi. Server buyurtmani raqam boʻyicha topadi va holatni bir marta oʻzgartiradi. Shu xabar yana kelsa, ikkinchi buyurtma yaratilmaydi. API javobi boʻlmasa, soʻrov takrorlanadi va muvaffaqiyat javobdan oldin koʻrsatilmaydi.
Almashinuv qanday ishlaydi
Kiruvchi chaqiruvni vebhuk deyishadi: tizim fakt haqida oʻzi xabar qiladi, bot uni har soniyada soʻramaydi. Javob yoʻq yoki u vaqtinchalik — soʻrov takrorlanadi. Idempotentlik degani: hodisaning raqami bor, takror natijani oʻzgartirmaydi. Kontur integratsiyalar ga kiradi.
Nima mumkin va nima mumkin emas
Hodisani qabul qilish, soʻrovni takrorlash va dubl yaratmaslik mumkin. Takrorni yangi faktdan ajratadigan raqamsiz almashinuv qurib boʻlmaydi. Tashqi tizim jim turishini muvaffaqiyat deb boʻlmaydi.
Foyda
Tarmoq uzilishi ikkita hujjatga aylanmaydi va yoʻqolgan holatni yashirmaydi. Xodim almashinuv qaysi qadamda toʻxtaganini koʻradi.
Joriy etish qadamlari
Hodisalar, manzil va imzo tekshiruvi siri yoziladi. Sinov konturida bitta hodisa, shu hodisa yana, javob uzilishi va rad etish yuboriladi. Shundan keyin jangovar manzil yoqiladi va birinchi sutka jurnali koʻriladi.
Savollar
Vebhuk oddiy qilib nima?
Bu tashqi tizim hodisani oʻzi yuboradigan manzil, masalan «buyurtma toʻlandi».
Nega takror ikkinchi buyurtma yaratdi?
Hodisaning takrorni yangi faktdan ajratadigan raqami yoʻq edi.
API jim turishi buyurtma yaratilganini anglatadimi?
Yoʻq. Muvaffaqiyat javobi boʻlmaguncha bot mijozga buyurtma qabul qilinganini koʻrsatmaydi.