舊版套裝組合服務的 Capabilities API

您的應用程式可使用 Capabilities API 來偵測特定 API 功能的運作中斷和排定停機時間。您可以使用這個 API 來偵測特定功能無法使用的時間,然後略過該功能,藉此縮短應用程式中的停機時間。。

舉例來說,如果您使用 Images API 調整圖片大小,您可以利用 Capabilities API 來偵測 Images API 無法使用的時間,並略過調整大小:

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 提供了方便資料儲存庫讀取和寫入功能的包裝函式。雖然只需將功能名稱以引數的形式提供給 CapabilitySet(),即可測試功能。但在這種情況下,您也可使用 db.READ_CAPABILITYdb.WRITE_CAPABILITY 便利 CapabilitySet 物件。以下範例顯示如何使用便利包裝函式,偵測資料儲存庫的寫入可用性,以及如何在停機期間向使用者提供相關訊息:

from google.appengine.ext import db

def RenderHTMLForm(self):
    if not db.WRITE_CAPABILITY.is_enabled():
        # Datastore is in read-only mode.

在 Python 2 中使用 Capabilities API

CapabilitySet 類別定義了此 API 所有的可用方法,您可以明確地指出功能,或是透過此類別提供的方法去推測這些功能。請參閱下方內容,取得這個 API 目前已啟用的服務清單

支援的功能

這個 API 目前支援下列功能:

功能 CapabilitySet 的引數
Blobstore 的可用性 "blobstore"
Datastore 的讀取功能 "datastore_v3"
資料儲存庫的寫入功能 "datastore_v3", ["write"]
圖片服務的可用性 "images"
郵件服務的可用性 "mail"
Memcache 服務的可用性 "memcache"
工作佇列服務的可用性 "taskqueue"
網址擷取服務的可用性 "urlfetch"