Storicamente, la descrizione delle interfacce tra sistemi era compito di architetti e integratori, spesso riducendosi a scambi di email con strutture dati. Nell'era dell'SOA e ancor di più nell'architettura a microservizi, il ruolo dell'analista di sistema nella formalizzazione e nel supporto dei contratti di integrazione è aumentato drasticamente.
Una descrizione errata, incompleta o obsoleta delle interfacce API porta a: incompatibilità dei servizi, aumento del numero di bug, impossibilità di apportare modifiche senza causare interruzioni a catena del funzionamento dell'intero sistema. Nei progetti multiservizi, il numero di punti di integrazione raggiunge decine e centinaia.
L'analista di sistema applica pratiche moderne:
Un elemento importante è la gestione della corretta versioning e tracciamento delle modifiche ai contratti, così come l'integrazione di casi di test per la validazione delle interazioni.
Caratteristiche chiave:
L'analista deve raccogliere requisiti per l'API solo dai clienti e sviluppatori interni?
No, è importante coinvolgere tutti i team di integrazione, considerando le esigenze dei partner esterni, per evitare lacune o incompatibilità.
È possibile documentare l'API solo al momento della consegna del sistema?
No, la specifica dell'API deve essere formulata e approvata prima dell'implementazione, altrimenti la retrocompatibilità sarà compromessa a ogni fase.
La specifica OpenAPI è di per sé una documentazione sufficiente per tutti i casi di scambio?
No, OpenAPI descrive le strutture, ma gli scenari di interazione (ad esempio, ordine di chiamata, sequenza di eventi, errori di business) devono essere descritti dall'analista nella documentazione utente.
Caso negativo: Il sistema di logistica si è integrato con trasportatori esterni. Il contratto è stato descritto solo "a parole". Dopo l'uscita delle modifiche, ci sono state interruzioni massicce dell'integrazione e ritardi.
Punti di forza:
Punti deboli:
Caso positivo: L'analista ha redatto un OpenAPI con esempi di errori/scenari di successo, ha concordato la versioning, ha raccolto feedback da tutti i team.
Punti di forza:
Punti deboli: