Questa pagina fornisce procedure dettagliate di configurazione e deployment per modificare il numero di versione dell'API. La procedura che utilizzi dipende dal fatto che le modifiche all'API siano compatibili con le versioni precedenti.
- Se la nuova versione dell'API include modifiche compatibili con le versioni precedenti, ad esempio l'aggiunta di nuovi campi o metodi, consulta Modifiche compatibili con le versioni precedenti.
- Se la nuova API ha modifiche a un metodo esistente che interrompe il codice client dei tuoi clienti, consulta la sezione Modifiche incompatibili con le versioni precedenti.
Per ulteriori informazioni e best practice, consulta la sezione Gestione del ciclo di vita delle API.
Modifiche compatibili con le versioni precedenti
Quando apporti modifiche alla tua API che sono compatibili con il codice client esistente, come best practice, incrementa il numero di versione secondaria dell'API prima di eseguire il deployment della nuova versione. Sebbene Cloud Endpoints esegua una sola versione secondaria di un'API alla volta, i grafici e i log in Endpoints > Servizi mostrano il numero di versione. Se incrementi il numero di versione secondaria prima del deployment, i grafici e i log forniscono una cronologia etichettata dei tuoi deployment.
Per incrementare il numero di versione secondaria:
In
openapi.yaml, incrementa il numero di versione secondaria del campoinfo.version. Ad esempio, se la versione attuale è1.1, impostainfo.versionsu1.2:info: description: "A simple Cloud Endpoints API example." title: "Endpoints Example" version: "1.2" host: "echo-api.endpoints.example-project-12345.cloud.goog"Utilizza Google Cloud CLI per eseguire il deployment della configurazione dell'API:
gcloud endpoints services deploy openapi.yamlEsegui il deployment del backend API utilizzando l'ID configurazione restituito dal passaggio precedente. Per maggiori dettagli, vedi Esegui il deployment del backend dell'API.
Modifiche non compatibili con le versioni precedenti
Quando apporti modifiche all'API che interrompono il codice client dei tuoi clienti, come best practice, incrementa il numero di versione principale dell'API. Endpoints può eseguire più di una versione principale di un'API contemporaneamente. Fornendo entrambe le versioni dell'API, i tuoi clienti possono scegliere quale versione utilizzare e controllare quando eseguire la migrazione alla nuova versione.
Per eseguire contemporaneamente le versioni esistenti e nuove di un'API:
Crea file di configurazione OpenAPI separati per ogni versione che devi pubblicare. Questa procedura utilizza i nomi file
openapi-v1.yamleopenapi-v2.yamla scopo esemplificativo.Copia i contenuti di
openapi-v1.yamlinopenapi-v2.yaml.In
openapi-v1.yamlconfigura quanto segue:- Imposta il campo
info.versionsul numero di versione esistente. - Lascia invariato il campo
basePath.
Ad esempio:
info: description: "A simple Cloud Endpoints API example." title: "Endpoints Example" version: "1.1" host: "echo-api.endpoints.example-project-12345.cloud.goog" basePath: "/v1"- Imposta il campo
In
openapi-v2.yamlconfigura quanto segue:- Apporta modifiche incompatibili con le versioni precedenti.
- Imposta il campo
info.versionsul nuovo numero di versione. - Imposta il campo
basePathin modo che includa il nuovo numero di versione principale. - Rimuovi la sezione
x-google-endpoints. Questa sezione è necessaria se vuoi specificare l'indirizzo IP DNS o il flagallowCors. Quando esegui il deployment di due versioni dell'API con due file di configurazione YAML, solo uno di questi può averex-google-endpoints, ma la sua configurazione verrà applicata a entrambe le versioni.
Ad esempio:
info: description: "A simple Google Cloud Endpoints API example." title: "Endpoints Example" version: "2.0" host: "echo-api.endpoints.example-project-12345.cloud.goog" basePath: "/v2"Utilizza Google Cloud CLI per eseguire il deployment di entrambi i file di configurazione dell'API:
gcloud endpoints services deploy openapi-v1.yaml openapi-v2.yamlEsegui il deployment di un singolo backend che gestisce entrambe le versioni dell'API utilizzando l'ID configurazione restituito dal passaggio precedente. Per maggiori dettagli, vedi Esegui il deployment del backend dell'API.