Come rimuovere la duplicazione del codice nel controllo delle versioni delle API Web

1

Sto lavorando con il progetto dell'API web core di ASP.NET, dove ho 8 controller, più DTO utilizzati per richiesta e risposta e mappatori per mappare i modelli (utilizzati anche nell'app Web) con DTO.

Recentemente, abbiamo iniziato con il controllo delle versioni, per questo ci riferiamo alle migliori pratiche: API-version-Convenzioni . Ecco la struttura del progetto che abbiamo finora:

MyProject
└ API
  ├─ v1
  │  └ Controllers
  |  L Models
  ├─ v2
  │  └ Controllers
  |  L Models
  └─ v2_5
     └ Controllers     
     L Models

Ma in questo caso, abbiamo bisogno di copiare lo stesso codice ancora e ancora, anche se la versione è minore. Quindi questa è una buona pratica o c'è un altro modo per aggirare?

    
posta Div 07.12.2018 - 17:56
fonte

1 risposta

1

Questa è una cattiva pratica.

Il problema con la struttura è che le tue 'versioni' non sono più versioni di rilascio.

Quando hai aggiunto la versione 2 alla tua API hai distribuito v1 e v2 insieme. La distribuzione originale per v1 è stata presumibilmente sovrascritta.

La best practice consiste nell'usare il controllo della versione per il controllo della versione del codice e per distribuire una nuova versione completamente separata dalla vecchia versione sulla nuova macchina virtuale.

Quindi instradi il traffico di rete sulla nuova o vecchia versione utilizzando l'infrastruttura di rete, non il codice del tuo sito web.

In questo modo, non tocchi affatto la versione precedente quando si distribuisce quella nuova. non vi è alcuna possibilità che un bug venga introdotto nella vecchia versione, poiché non è stato affatto cambiato.

Se è necessario eseguire il rollback, si tratta semplicemente di instradare nuovamente il traffico alle vecchie caselle. Sono ancora lì a lavorare normalmente.

    
risposta data 07.12.2018 - 18:05
fonte

Leggi altre domande sui tag