Dengan Capabilities API, aplikasi Anda dapat mendeteksi pemadaman layanan dan periode nonaktif terjadwal untuk kemampuan API tertentu. Anda dapat menggunakan API ini untuk mengurangi periode nonaktif di aplikasi dengan mendeteksi kapan kemampuan tidak tersedia, lalu mengabaikannya. .
Misalnya, jika menggunakan Images API untuk mengubah ukuran gambar, Anda dapat menggunakan Capabilities API untuk mendeteksi saat Images API tidak tersedia dan melewati perubahan ukuran:
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)
Datastore API menyediakan wrapper praktis untuk kemampuan baca dan tulis Datastore. Meskipun Anda dapat menguji kemampuan hanya dengan memberikan
nama kemampuan sebagai argumen untuk CapabilitySet()
, dalam hal ini Anda juga dapat
menggunakan db.READ_CAPABILITY
dan db.WRITE_CAPABILITY
objek
CapabilitySet
yang praktis. Contoh berikut menunjukkan cara mendeteksi ketersediaan penulisan Datastore menggunakan wrapper praktis dan, selama periode nonaktif, memberikan pesan kepada pengguna:
from google.appengine.ext import db
def RenderHTMLForm(self):
if not db.WRITE_CAPABILITY.is_enabled():
# Datastore is in read-only mode.
Menggunakan Capabilities API di Python 2
Class CapabilitySet menentukan semua metode yang tersedia untuk API ini. Anda dapat memberi nama kemampuan secara eksplisit atau menyimpulkannya dari metode yang disediakan oleh class ini. Lihat di bawah untuk daftar layanan yang saat ini diaktifkan di API ini.
Kemampuan yang didukung
API tersebut saat ini mendukung kemampuan berikut:
Kemampuan | Argumen untuk CapabilitySet |
---|---|
Ketersediaan blobstore | "blobstore" |
Pembacaan Datastore | "datastore_v3" |
Penulisan Datastore | "datastore_v3", ["write"] |
Ketersediaan layanan Gambar | "images" |
Ketersediaan layanan Email | "mail" |
Ketersediaan layanan Memcache | "memcache" |
Ketersediaan layanan Task Queue | "taskqueue" |
Ketersediaan layanan URL-Fetch | "urlfetch" |