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:
from google.appengine.api import capabilities
def StoreUploadedProfileImage(self):
uploaded_image = self.request.get('img')
# If the images API is unavailable, we'll just skip the resize.
if capabilities.CapabilitySet('images').is_enabled():
uploaded_image = images.resize(uploaded_image, 64, 64)
store(uploaded_image)
A Datastore API oferece um wrapper prático para os recursos de leitura e
gravação do Datastore. Embora você possa testar recursos simplesmente fornecendo o
nome do recurso como um argumento para CapabilitySet()
, neste caso, também
é possível usar os objetos CapabilitySet
de conveniência
db.READ_CAPABILITY
e db.WRITE_CAPABILITY
. O exemplo a seguir mostra como detectar a
disponibilidade de gravações do armazenamento de dados usando um wrapper de conveniência e, durante o
tempo de inatividade, exibir uma mensagem para os usuários:
from google.appengine.ext import db
def RenderHTMLForm(self):
if not db.WRITE_CAPABILITY.is_enabled():
# Datastore is in read-only mode.
Como usar a API Capabilities no Python 2
A classe CapabilitySet define todos os métodos disponíveis para essa API. É possível nomear os recursos explicitamente ou deduzi-los dos métodos fornecidos por essa classe. 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 CapabilitySet |
---|---|
Disponibilidade do blobstore | "blobstore" |
Leituras do Datastore | "datastore_v3" |
Gravações do Datastore | "datastore_v3", ["write"] |
Disponibilidade do serviço de imagens | "images" |
Disponibilidade do serviço de e-mail | "mail" |
Disponibilidade do serviço de memcache | "memcache" |
Disponibilidade do serviço de fila de tarefas | "taskqueue" |
Disponibilidade do serviço de Busca de URL | "urlfetch" |