Stabilire un ciclo di vita delle API è essenziale per ottenere una piattaforma di livello enterprise che espone magari centinaia o migliaia di API . Questo tipo di piattaforma richiede che il team di sviluppo utilizzi un comune vocabolario al fine di avere produttività, qualità e governance nel ciclo delle API.
Prendiamo spunto da quanto ha suggerito Postman, un tool internazionale per la gestione, il delivery ed il test delle API, nel suo blog per indicarti quali sono gli step di un lifecycle delle API che dovresti prendere in considerazione per i tuoi Web Service per garantirne la qualità, la scalabilità, la modularità e la performance.
Contattaci subito e senza impegno per realizzare le tue API.
1 – Definire
Per sviluppare le API (ma anche per qualsiasi applicazione) occorre definire le informazioni minime come:
- il team ed i ruoli degli sviluppatori;
- il workspace, dove trovare le informazioni utili per lo sviluppo e per collaborare;
- il repository, cioè dove mettere al sicuro il codice sorgente, per es. usando Git per il versioning e la gestione del delivery.
2 – Progettare
Occore poi progettare le API mantendo la consistenza delle informazioni, i comuni standard ed i pattern di sviluppo. Per far questo puoi usare:
- OpenAPI per avere un comune vocabolario che descrive le richieste e le risposte delle API, inoltre ti aiuta anche a stabilire il delivering della documentazione, i mocks ed i test;
- Mock server per replicare le funzionalità delle API che avrebbero in produzione prima di effettivamente svilupparle. Il Mock Server ti permette anche di ottenere un primo feedback da tutti i stakeholder delle API.
3 – Documentare
La documentazione è un elemento essenziale per assicurare che lo sviluppo sia completo, accurato e facilmente da rimodulare e modificare nel tempo anche da altri sviluppatori. Troppo spesso si sottovaluta questa fase per poi comprenderne la stategica utilità solo quando è oramai tardi ed è costoso ritornare indietro. Dovresti includere nella tua documentazione almeno:
- i riferimenti di cosa è possibile ottenere con ogni API, come attivare le richieste e quali risposte vengono inviate (anche in caso di fallimento della richiesta). Inoltre occorre formalizzare i path, i parametri, gli schemi, la modalità di autenticazione e qualsiasi dettaglio tecnico in modo leggibile e comprensibile affinchè si possa capire completamente come l’API funziona.
- gli esempi ed i casi d’uso delle richieste, delle risposte e dei messaggi che l’API invia o può inviare. Gli esempi aiutano anche potendo essere utilizzati per il versioning e per il testing delle API.
4 – Deploy
Un processo di sviluppo deve avere almeno tre ambienti: development, staging e production. Questo processo garantisce che le API seguano una corretta pipeline di introduzione e delivery. Inoltre tale processo assicura che le API siano parte di una progettualità gestita. Nell’ambito di questa fase possono essere d’aiuto:
- CI/CD pipeline, strumenti per il Continuous Integration/Continuous Delivery che ti permettono anche di automatizzarne il deploy e l’orchestrazione dell’infrastruttura.
- Gateway per avere un approccio federato e centralizzato di gestione per scalare ed avere un comune elemento verso l’esterno come policy.
5 – Test
Nello sviluppo la componente test-driven assicura che il delivery ed i risultati delle API siano in linea con le aspettative, inoltre i test ti permettono di comprendere che l’API è stabile ed invia dati ed informazioni corrette e ti garantiscono che una modifica ad una API non ha provocato problemi o errori. Per aiutarti nei test puoi usare:
- Contract testing sullo stile delle API artifacts per es. in OpenAPI, JSON Schema o GraphSQL per formalizzare il test, i risultati e le API. Ciò ti permettere di avere test ripetibili e scalabili.
- Performance test con tool come Locust per assicurare che le API rispondono secondo i tempi che ti aspetti.
- Chaos Engineering per verificare la resilienza delle API business critical e delle API che sono correlate ad altre API e che quindi hanno strutturalmente possibilità di errore.
6 – Sicurezza
In questa fase devi garantire la sicurezza delle tue API applicando processi di Identity Access Management(IAM) ed implementando autenticazione, autorizzazione ed auditing. Troppo spesso API poco sicure hanno esposto dati confidenziali o protetti dalla privacy. Puoi ottenere la sicurezza delle API attraverso:
- l’autenticazione delle API con token e scambi di chiavi anche utilizzando il Cloud per la gestione delle chiavi;
- Penetration Test per verificare che le API siano protette come minimo dalle Top 10 vulnerabilità di OWASP.
7 – Monitor
Monitorare vuol dire controllare che le tue API rispettino nel tempo tutte le tue aspettative. Evitare o sottovalutare il monitoraggio spesso comporta perdite economiche poichè ci si accorge troppo tardi di errori gravi ed impattanti. Oggi ci sono numerosi strumenti di monitoraggio anche Cloud based che ti permettono in maniera automatica e autogestita di avere analisi su qualsiasi aspetto delle tue API come performance, security exposure, test, attività, changelog anche inviandoti notifiche in base a specifici trigger.
8 – Discover
Le API sono utili se possono essere trovate ed utilizzate, in questa fase devi fornire ai tuoi “consumatori di API” la documentazione necessaria, i workflow di utilizzo e gli strumenti per potersi integrare ed usare le tue API. Sia che tu scelga di esporre le tue API sul tuo portale pubblico o internamente è necessario che implementi un processo di Knowledge Management al fine di mantenere le API ricercabili, consistenti ed effettivamente utili nel tempo.
Glue Labs e le API
Abbiamo sviluppato ed integrato API in Web Service e Web Application, Middleware ed Embedded System. Grazie all’esperienza maturata in tantissimi settori, con numerosi Clienti e con un solido gruppo aziendale ti garantiamo le competenze per assisterti e supportarti per qualsiasi tuo progetto di sviluppo e nella realizzazione di API, anche Cloud Native, con garanzia 12 mesi da qualsiasi bug. Contattaci subito e senza impegno per maggiori informazioni.