API Capabilities para serviços agrupados legados

Com a API Capabilities, é possível detectar interrupções e uma inatividade programada de determinados recursos da API. É possível usar essa API para reduzir a inatividade no aplicativo detectando quando um recurso está indisponível e pode ser ignorado. .

Por exemplo, se você usar a API Images para redimensionar imagens, poderá usar a API Capabilities para detectar quando a API Images está indisponível e ignorar o redimensionamento:

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.
}

Você pode consultar separadamente a disponibilidade de leituras e gravações do Datastore. O exemplo a seguir mostra como detectar a disponibilidade das gravações do Datastore e, durante a inatividade, fornecer uma mensagem aos usuários:

CapabilityStatus status =
    service.getStatus(Capability.DATASTORE_WRITE).getStatus();

if (status == CapabilityStatus.DISABLED) {
    // Datastore is in read-only mode.
}

Como usar a API Capabilities no Java 8

Cada recurso é representado por uma constante estática na classe "Capability", como Capability.DATASTORE_WRITE. Cada recurso tem um estado, que pode ser recuperado de CapabilitiesService.getStatus(Capability). Por sua vez, cada estado tem um status, que é uma enumeração que indica a disponibilidade de um recurso: ENABLED ou DISABLED. Consulte abaixo a lista de serviços que estão ativados atualmente nessa API.

Recursos compatíveis

No momento, a API oferece suporte aos seguintes recursos:

Recurso Argumentos para getStatus
Disponibilidade do blobstore Capability.BLOBSTORE
Leituras do Datastore Capability.DATASTORE
Gravações do Datastore Capability.DATASTORE_WRITE
Disponibilidade do serviço de imagens Capability.IMAGES
Disponibilidade do serviço de e-mail Capability.MAIL
Disponibilidade do serviço de memcache Capability.MEMCACHE
Disponibilidade do serviço de fila de tarefas Capability.TASKQUEUE
Disponibilidade do serviço de Busca de URL Capability.URL_FETCH