Sto lavorando su un'API REST basata su Spring con varianti v1 e v2:
/api/v1/dates
/api/v2/dates
Corrispondentemente, ci sono i pacchetti v1 e v2 nel codebase:
com.company.api.v1
com.company.api.v2
È una buona pratica assegnare nomi di classi postfix con il numero di versione come di seguito:
- DatesControllerV1.java (nel pacchetto v1)
- DatesControllerV2.java (nel pacchetto v2)
Preferisco non versione postfixing nel nome della classe come:
- i nomi dei pacchetti dovrebbero dirti già la versione ridondante;
- Semplicemente non mi piace il carattere numerico nel nome della classe.
Tuttavia, non la versione postfixing (cioè lo stesso nome di classe ma in pacchetti diversi) aumenterà la probabilità di utilizzare la classe sbagliata accidentalmente a causa del completamento / importazione automatica IDE da parte di sviluppatori incuranti.
Ho provato a cercare un repo github che abbia una struttura di base in codice simile e vediamo come si comportano con esso. Ma non è stato possibile trovarne uno sfortunatamente.
Mi chiedo quale approccio pensi sia migliore e il motivo. Mi chiedo anche se ci sia un approccio migliore (per l'attuale configurazione del codice base) rispetto a questi due?
Aggiorna
Con l'aiuto di Azuaron e CormacMulhall, mi sono reso conto che in realtà non ho altre opzioni per migliorare la mia situazione attuale, dato che entrambe le API v1 e v2 risiedono nella stessa base di codice e non posso cambiare questa configurazione.
Per coloro che sono alla ricerca del modo corretto di farlo (con diverse versioni di API), vedi la risposta di Azuaron di seguito.