Sincronizzazione tra un'app online e una offline con CloudEvents: l'implementazione in Go
Questo è il primo di una serie di 7 articoli in cui costruiamo, passo per passo, lo stesso meccanismo di sincronizzazione tra un'applicazione online (un server centrale, sempre raggiungibile) e un'applicazione offline (un client che passa la maggior parte del tempo disconnesso e si collega solo per sincronizzarsi).
API REST in Go: validazione, errori e testing
Con questa settima puntata chiudiamo la serie portando la nostra API a un livello di qualità adatto alla produzione. Affronteremo tre aspetti che distinguono un servizio robusto da un prototipo: la validazione rigorosa degli input, la restituzione di errori strutturati e coerenti, e la copertura con test automatici.
API REST in Go: autenticazione e autorizzazione con JWT
Abbiamo dotato l'API di un sistema di autenticazione e autorizzazione completo e stateless. Abbiamo custodito le password con bcrypt, emesso e verificato token JWT con particolare attenzione alla sicurezza dell'algoritmo di firma, costruito l'endpoint di login con risposte prudenti alle credenziali errate, e protetto gli endpoint con middleware di autenticazione e controllo dei ruoli, sfruttando il context per trasportare l'identità dell'utente.
API REST in Go: i middleware
I middleware ci hanno permesso di aggiungere comportamento trasversale a tutta l'API senza duplicare codice nei singoli gestori.