Mahsulot sahifasi o'zida API borligini aytadi, integratsiya yig'ilishi esa ikkinchi savolda tiqilib qoladi. Qaysi operatsiya, qaysi obyekt ustida, kim chaqiradi va nima muvaffaqiyat sanaladi? Mahsulotlarni taqqoslashdan oldin shu to'rttasiga javob berish odatda nomzodlarning yarmini chiqarib tashlaydi. Qolgan taqqoslashni ham test hal qila oladigan narsaga aylantiradi.

«API bor» jumlasini bitta operatsiya bilan almashtiring

API — bu transport, qobiliyat emas. REST oxirgi nuqtasi, mahalliy soket va buyruq qatori o'rami API deb atalishi mumkin, va ular teng operatsiyalarni taklif qilmaydi.

Hujjatlarga qarashdan oldin operatsiyani gap sifatida yozib qo'ying.

Mahalliy ulanishni boshlash oldida foydalanuvchi turgan mijoz tomonidagi amaldir. Qurilma profilini chiqarish orqasida inventar turgan ta'minlash amalidir. Foydalanuvchining kirishini o'chirish audit izi bo'lgan ma'muriy amaldir. Bu uchtasi odatda turli komponentlarda, turli jamoalar egaligida va turli vakolat bilan yashaydi.

Shartnomani sinovdan o'tkazadigan to'rtta maydon

Har bir operatsiya uchun to'rtta maydonni to'ldiring: obyekt, amal, chaquvchi va muvaffaqiyat sharti. Maydoni yetishmayotgan shartnoma shunchaki istak.

Jadval butun ish varag'i:

FieldQuestionExample
ObjectWhat is being acted on?One enrolled device
ActionObserve, create, change, start, stop, or revoke?Revoke
CallerWhich identity calls it?Deployment service
SuccessWhat observable state proves it?Future sign-in denied

Muvaffaqiyat sharti odamlar tashlab ketadigan maydon bo'lib, integratsiya ishlaydimi-yo'qmi, aynan shu hal qiladi. Saqlangan sozlama faol tunnel emas, o'chirilgan hisob esa tugagan sessiya emas.

Agar ikki operatsiyaga turli chaquvchilar kerak bo'lsa, bu ikki integratsiya. Ularni bitta xizmat hisobiga birlashtirish odatda ikkalasiga ham kerak bo'lganidan ko'proq vakolat berish demakdir.

Interfeysni u haqiqatan tegishli qatlam bilan moslang

OpenVPN hamjamiyatining boshqaruv interfeysi daemon bilan TCP yoki Unix soket orqali gaplashadi. Uning buyruqlari holat kuzatuvi va daemonga signallarni o'z ichiga oladi.

Bu uni daemon boshqaruv kanaliga aylantiradi, joylashtirilgan obuna API yoki foydalanuvchi ro'yxatga olish xizmati emas. Uning hujjatlarini sinchkovlik bilan o'qish sizni obyektga egalik qilmaydigan qatlam ustida qurishdan saqlaydi.

O'sha hujjat protokolning o'z shifrlashi yo'qligini ham aytadi. Soketga yeta olgan har kim daemonni boshqara oladi, shuning uchun unga nozik boshqaruv sifatida qarang, metrikalar oqimi sifatida emas. Uni loopback yoki Unix soketga bog'lang va masofaviy chaquvchiga kerak bo'lsa, cheklangan tartib orqasiga qo'ying. Qulaylik uchun uni internetga ochish boshqaruv kanalini hodisaga aylantiradi.

Chaqiruvdan keyingi xatti-harakatni belgilang

Qabul qilish tugallanish bilan bir xil emas. Daemon tunnel ko'tarilishidan oldin qaytishi mumkin, shuning uchun hujjatlashtirilgan tugallanish yoki nosozlik hodisasini kuting va uni yuborgan so'rovingiz bilan bog'lang.

Javob yo'qolsa, chaquvchi nima qilishini hal qiling. Yaratish yoki qayta ulanishni ko'r-ko'rona takrorlash birinchi so'rov allaqachon ta'sir qilganini tekshirish bilan bir xil emas.

Kirishni olib tashlash kamida uch xil amaldir: kelgusi kirishni bloklash, faol sessiyani tugatish va hisob ma'lumotlarini bekor qilish. Siyosat haqiqatan talab qiladiganlarini so'rang va shartnomada qaysi biri qaysi ekanini ayting. Dalilsiz bitta muvaffaqiyatli hisob yangilanishini to'liq bekor qilish deb atamang. Hodisa paytida, soat yurib turganda, bu farq muhim.

Shartnomani pilot bilan tekshiring

Kichik tasdiqlangan pilot muvaffaqiyat, rad etish, uzilish va qayta urinishni, so'ng ruxsat berilishi yoki rad etilishi kerak bo'lgan dastur operatsiyasini qamrab olishi kerak.

Daemon darajasidagi interfeys uchun ikkita buyruq kuzatuv va signalni mashq qiladi:

echo state | nc -w 2 127.0.0.1 7505
echo signal SIGTERM | nc -w 2 127.0.0.1 7505

Faqat operatsiya talab qiladigan vakolatni bering. Sirlarni odatdagi jurnallardan uzoqda saqlang va qaysi nishon zarar ko'rgani va qanday tugaganini aytish uchun yetarli shaxsiy tafsilotlarni yozib qo'ying.

Boshqaruv API o'zi ishlamay qolgan holat uchun tiklash yo'lini yozib qo'ying. Obyekt va uning hayot tsikliga ega bo'lgan interfeysni tanlang; mahsulot sahifasidagi avtomatlashtirish da'volari uning o'rnini bosmaydi.

O'xshash maqolalar