Capabilities API untuk paket layanan lama

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"