Nella mia azienda, attualmente sto lavorando a un progetto con alcuni servizi web (REST) coinvolti. Lo sviluppo si basa sulla specifica OpenAPI e sugli strumenti Swagger . La piattaforma di destinazione è una piattaforma cloud interna basata su OpenShift.
Poiché utilizziamo una pipeline CI / CD nel nostro processo di sviluppo del software (più o meno l'intera Atlassian Toolchain, Artifactory, ecc.) sorge la domanda se sia possibile integrare perfettamente una fase di generazione del codice nella pipeline.
Il processo di sviluppo dell'API in questo momento è fondamentalmente simile a questo:
- Scrivi / modifica le specifiche API
- Conferma modifiche in SCM
- Convalida le specifiche e genera documentazione API
Il processo di sviluppo (ad esempio il server) rispetto alle specifiche API è simile a questo:
- Generazione locale / aggiornamento degli stub del server
- Impegna in SCM
- Il codice server viene quindi implementato rispetto agli stub generati e controllati
La domanda è, se questa è la soluzione ideale per lavorare con un generatore di codice in generale. Ho la sensazione sottile che la generazione locale di codice non sia la soluzione migliore qui, poiché è necessario aggiornare regolarmente l'SCM con gli stub di nuova generazione per essere aggiornati con le modifiche alle specifiche API.
Un'idea che mi è venuta in mente è quella di fare ad es. uso di un gestore di repository artefatto (come Artifactory). Il processo di compilazione potrebbe quindi creare una libreria di stub del server in base alle specifiche API che viene inserita nel gestore degli artefatti. Gli sviluppatori possono utilizzare il loro sistema di build locale per aggiornare la dipendenza. Tuttavia, questo processo potrebbe essere eccessivo.
Dato che non sono riuscito a trovare buone risorse sull'integrazione dei generatori di codice in un processo di sviluppo software utilizzando pipeline CI / CD, sono molto interessato alle migliori pratiche qui (o forse c'è una buona soluzione specifica per il mio esempio precedentemente descritto ?).