Supponiamo di aver bisogno di definire una API REST completamente nuova per un determinato servizio. Queste API di resto si distinguono per qualcosa come "v1" e "v2" nel percorso.
Se sviluppi questi servizi in Java, ti piacerebbe:
- Aggiungi i nuovi punti di accesso al progetto specificato e distribuisci una nuova versione che supporta sia i percorsi v1 sia i percorsi v2?
- Rimuovere tutti i punti di accesso v1 dal progetto, aggiungere i nuovi punti di accesso v2 e distribuire contemporaneamente due diverse versioni del servizio sul server?
La soluzione 1 ha lo svantaggio che è difficile aggiornare le versioni della libreria perché tutte le modifiche devono essere apportate per entrambe le API. La soluzione 2 ha lo svantaggio di avere due versioni produttive dello stesso servizio che potrebbero confondere. Inoltre, la risoluzione dei bug indica la correzione di due programmi.