API Capabilities per servizi in bundle legacy

Con l'API Capabilities, la tua applicazione può rilevare interruzioni e tempi di inattività pianificati per funzionalità API specifiche. Puoi utilizzare questa API per ridurre i tempi di inattività nella tua applicazione rilevando quando una funzionalità non è disponibile e ignorandola. Per visualizzare i contenuti del pacchetto capability, consulta il capability riferimento al pacchetto.

Ad esempio, se utilizzi l'API Datastore, puoi utilizzare l'API Capabilities per rilevare quando l'API Datastore non è disponibile e segnalare un errore all'utente:

func handler(w http.ResponseWriter, r *http.Request) {
	ctx := appengine.NewContext(r)
	// Check if the Datastore API is available
	if !capability.Enabled(ctx, "datastore_v3", "*") {
		http.Error(w, "This service is currently unavailable.", 503)
		return
	}
	// do Datastore lookup ...
}

Puoi eseguire query separate per la disponibilità delle operazioni di lettura e scrittura di Datastore. Il seguente esempio mostra come rilevare la disponibilità delle operazioni di scrittura di Datastore e, durante i tempi di inattività, fornire un messaggio agli utenti:

func checkDatastoreMode(w http.ResponseWriter, r *http.Request) {
	ctx := appengine.NewContext(r)
	// Check if the Datastore service is in read-only mode.
	if !capability.Enabled(ctx, "datastore_v3", "write") {
		// Datastore is in read-only mode.
	}

}

Utilizzo dell'API Capabilities

La capability.Enabled funzione restituisce true se l'API e la funzionalità fornite sono disponibili. Devi passare un nome di funzionalità (ad esempio "write") o il carattere jolly "*" per eseguire una query su tutte le funzionalità dell'API.

Funzionalità supportate

L'API supporta attualmente le seguenti funzionalità:

Capacità Argomenti per Enabled
Disponibilità di Blobstore "blobstore", "*"
Operazioni di lettura Datastore "datastore_v3", "*"
Operazioni di scrittura Datastore "datastore_v3", "write"
Disponibilità del servizio Mail "mail", "*"
Disponibilità del servizio Memcache "memcache", "*"
Disponibilità del servizio Coda delle attività "taskqueue", "*"
Disponibilità del servizio di recupero URL "urlfetch", "*"