Con l'API Capabilities, la tua applicazione può rilevare interruzioni e tempi di inattività programmati per specifiche funzionalità dell'API. Puoi utilizzare questa API per ridurre i tempi di inattività della tua applicazione rilevando quando una funzionalità non è disponibile e poi bypassandola. .
Ad esempio, se utilizzi l'API Images per ridimensionare le immagini, puoi utilizzare l'API Capabilities per rilevare quando l'API Images non è disponibile e saltare il ridimensionamento:
import com.google.appengine.api.capabilities.*;
CapabilitiesService service =
    CapabilitiesServiceFactory.getCapabilitiesService();
CapabilityStatus status = service.getStatus(Capability.IMAGES).getStatus();
if (status == CapabilityStatus.DISABLED) {
    // Images API is not available.
}
Puoi eseguire query separate per verificare la disponibilità delle letture e delle scritture di Datastore. L'esempio seguente mostra come rilevare la disponibilità delle scritture in Datastore e, durante il tempo di riposo, fornire un messaggio agli utenti:
CapabilityStatus status =
    service.getStatus(Capability.DATASTORE_WRITE).getStatus();
if (status == CapabilityStatus.DISABLED) {
    // Datastore is in read-only mode.
}
Utilizzo dell'API Capabilities in Java 8
Ogni funzionalità è rappresentata come una costante statica nella classe Capability, come Capability.DATASTORE_WRITE.
Ogni funzionalità ha uno stato, che puoi recuperare da
CapabilitiesService.getStatus(Capability).
Ogni stato ha uno stato, che è un'enumerazione che riflette la disponibilità di una funzionalità: ENABLED o DISABLED. Di seguito è riportato l'elenco dei servizi attualmente abilitati in questa API.
Funzionalità supportate
Al momento l'API supporta le seguenti funzionalità:
| Capacità | Argomenti per getStatus | 
|---|---|
| Disponibilità del blobstore | Capability.BLOBSTORE | 
| Letture del datastore | Capability.DATASTORE | 
| Scritture datastore | Capability.DATASTORE_WRITE | 
| Disponibilità del servizio Immagini | Capability.IMAGES | 
| Disponibilità del servizio Posta | Capability.MAIL | 
| Disponibilità del servizio Memcache | Capability.MEMCACHE | 
| Disponibilità del servizio Task Queue | Capability.TASKQUEUE | 
| Disponibilità del servizio di recupero URL | Capability.URL_FETCH |