Devo utilizzare la stessa soluzione per Web API e client generato automaticamente per questo?

-1

Ho la seguente situazione:

  • Soluzione WebAPI Core di ASP.NET che utilizza Swagger
  • Client generato automaticamente per WebAPI utilizzando Autorest, esteso con autorizzazione personalizzata. Anche questo client verrà inserito in NuGet per essere utilizzato da altri servizi. Domanda: dovrei inserire il client nella stessa soluzione (e quindi nello stesso VCS) o dovrei creare la soluzione e il repository separati per questo?

Il mio pensiero è che è meglio spostare il client in un repository separato poiché le modifiche ad esso non devono innescare la creazione del progetto WebAPI. D'altra parte, le modifiche a WebAPI dovrebbero (a mio parere) innescare la compilazione e il packaging del client.

I suggerimenti sono benvenuti. Grazie!

    
posta Ihor Korotenko 28.08.2017 - 14:31
fonte

1 risposta

1

Qualsiasi progetto che verrà inviato a un server NuGet funziona meglio se si trova in un repository separato per i seguenti motivi:

  • Aiuta a incapsulare tutti i test e il codice di supporto in un unico punto
  • Costringe il codice client a utilizzare NuGet invece delle dipendenze del progetto
  • Aiuta a trovare e identificare le risorse mancanti necessarie per l'utilizzo del tuo codice più rapidamente - presupponendo che tu abbia un codice client di esempio che estrae le ultime e le più grandi da NuGet e tenti di usarlo / verificarlo.

Detto questo, desidero affrontare un malinteso:

On the other hand, changes to WebAPI should(in my opinion) trigger build and packaging of the client.

I tipi di modifiche alla WebAPI che richiedono la ricostruzione del codice client sono quelli che richiedono modifiche al codice cliente. Fornirò un paio di esempi per renderlo un po 'più chiaro:

  • Le modifiche all'implementazione di una chiamata REST non richiedono la ricompilazione del client. Tutti i client che possono chiamare quel metodo avranno la nuova funzionalità, indipendentemente dal fatto che siano aggiornati o meno.
  • Le modifiche all'interfaccia REST richiedono di fatto modifiche al codice client e richiede che tu gestisca correttamente la versione in modo che i client obsoleti possano riconoscere quando non possono lavorare con l'implementazione dell'API REST.
risposta data 28.08.2017 - 14:44
fonte

Leggi altre domande sui tag