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:
Capacidade | 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 |