Ապրանքի էջը պնդում է, որ ունի API, և ինտեգրման հանդիպումը կանգ է առնում երկրորդ հարցի վրա։ Ո՞ր գործողությունը, ո՞ր օբյեկտի վրա, ո՞վ է կանչում և ի՞նչն է համարվում հաջողություն։ Այս չորս հարցերին պատասխանելը մինչ ապրանքների համեմատումը սովորաբար վերացնում է թեկնածուների կեսը։ Այն նաև մնացած համեմատությունը դարձնում է մի բան, որը կարող է որոշել թեստը։

Փոխարինեք API ունենալու պնդումը մեկ գործողությամբ

API-ն փոխադրում է, ոչ թե կարողություն։ REST վերջնակետը, տեղական սոկետը և հրամանի տողի փաթաթան բոլորը կարող են կոչվել API, և նրանք համարժեք գործողություններ չեն առաջարկում։

Գրեք գործողությունը որպես նախադասություն՝ նախքան փաստաթղթերը բացելը։

Տեղական կապի մեկնարկը հաճախորդի կողմի գործողություն է՝ իր առջևում օգտատեր։ Սարքի պրոֆիլի թողարկումը մատակարարման գործողություն է՝ իր հետևում գույքագրում։ Օգտատիրոջ հասանելիության անջատումը վարչական գործողություն է՝ աուդիտի հետքով։ Այս երեքը սովորաբար ապրում են տարբեր բաղադրիչներում, տարբեր թիմերի սեփականության ներքո, տարբեր լիազորությամբ։

Չորս դաշտ, որոնք պայմանագիրը դարձնում են փորձարկելի

Յուրաքանչյուր գործողության համար լրացրեք չորս դաշտ՝ օբյեկտը, գործողությունը, կանչողը և հաջողության պայմանը։ Բացակայող դաշտով պայմանագիրը ցանկություն է։

Աղյուսակը ամբողջ աշխատաթերթն է՝

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

Հաջողության պայմանը այն դաշտն է, որը մարդիկ բաց են թողնում, և հենց այն է որոշում՝ աշխատում է ինտեգրումը, թե ոչ։ Պահված կարգավորումը ակտիվ թունել չէ, և անջատված հաշիվը ավարտված սեսիա չէ։

Եթե երկու գործողություններ տարբեր կանչողներ են պահանջում, դրանք երկու ինտեգրում են։ Դրանք մեկ սպասարկման հաշվում միավորելը սովորաբար նշանակում է ավելի շատ լիազորություն տալ, քան դրանցից որևէ մեկին է պետք։

Համապատասխանեցրեք ինտերֆեյսը իր իրական շերտին

OpenVPN-ի համայնքային կառավարման ինտերֆեյսը հաղորդակցվում է դեմոնի հետ TCP-ի կամ Unix սոկետի միջոցով։ Նրա հրամանները ներառում են վիճակի դիտարկում և ազդանշաններ դեմոնին։

Դա այն դարձնում է դեմոնի կառավարման ալիք, ոչ թե հոսթինգային բաժանորդագրության API կամ օգտատերերի գրանցման ծառայություն։ Նրա փաստաթղթերը ուշադիր կարդալը փրկում է այն շերտի դեմ կառուցելուց, որը չի տիրապետում օբյեկտին։

Նույն փաստաթղթերն ասում են, որ արձանագրությունը սեփական գաղտնագրում չի կրում։ Ով կարող է հասնել սոկետին, կարող է կառավարել դեմոնը, ուստի վերաբերվեք դրան որպես զգայուն կառավարման, ոչ թե մետրիկների հոսքի։ Կապեք այն loopback-ին կամ Unix սոկետին, և դրեք սահմանափակ կարգի հետևում, եթե հեռավոր կանչողին դա պետք է։ Այն ինտերնետում հարմարության համար բացելը կառավարման ալիքը դարձնում է միջադեպ։

Սահմանեք վարքը կանչից հետո

Ընդունումը նույնը չէ, ինչ ավարտը։ Դեմոնը կարող է վերադառնալ նախքան թունելի բարձրացումը, ուստի սպասեք փաստաթղթավորված ավարտի կամ ձախողման իրադարձությանը և կապեք այն ուղարկված հարցմանը։

Որոշեք, ինչ է անում կանչողը, եթե պատասխանը կորչում է։ Ստեղծման կամ վերակապակցման կույր կրկնությունը նույնը չէ, ինչ ստուգելը՝ արդյոք առաջին հարցումն արդեն ազդել է։

Հասանելիության հեռացումը առնվազն երեք տարբեր գործողություն է՝ արգելափակել ապագա մուտքը, ավարտել ակտիվ սեսիան և չեղարկել հավատարմագրերը։ Պահանջեք այն, ինչ քաղաքականությունը իսկապես պահանջում է, և պայմանագրում ասեք՝ որն որը։ Առանց ապացույցի մի հաշվի մեկ հաջող թարմացումը մի անվանեք ամբողջական չեղարկում։ Տարբերությունը կարևոր է միջադեպի ժամանակ, երբ ժամացույցը ընթանում է։

Ստուգեք պայմանագիրը պիլոտով

Փոքր հաստատված պիլոտը պետք է ծածկի հաջողությունը, մերժումը, ընդհատումը և կրկնափորձը, ապա այն հավելվածային գործողությունը, որը պետք է թույլատրվի կամ արգելվի։

Դեմոնի մակարդակի ինտերֆեյսի համար երկու հրաման փորձարկում են դիտարկում և ազդանշան՝

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

Տվեք միայն այն լիազորությունը, որը պահանջում է գործողությունը։ Գաղտնիքները պահեք սովորական մատյաններից դուրս, և գրանցեք բավարար մասնավոր մանրամասներ, որպեսզի ասեք, թե որ թիրախն է տուժել և ինչպես ավարտվեց։

Գրեք վերականգնման ուղին այն դեպքի համար, երբ կառավարման API-ն ինքն անհասանելի է։ Ընտրեք այն ինտերֆեյսը, որը տիրապետում է օբյեկտին և նրա կյանքի ցիկլին. ապրանքի էջի ավտոմատացման պնդումները փոխարինող չեն։

Առնչվող հոդվածներ