Страница на производ тврди дека има 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 е недостапен. Изберете го интерфејсот што го поседува објектот и неговиот животен циклус; тврдењата за автоматизација на страница на производ не се замена.

Поврзани статии