アプリケーションで Capabilities API を使用すると、特定の API 機能の停止や予定されているダウンタイムを検出できます。この API を使用すると、機能が利用できなくなる時間帯を検出してバイパスできるので、アプリケーションのダウンタイムを短縮できます。
たとえば、Images API を使用して画像のサイズを変更する場合は、次のように Capabilities API を使用して、Images API が利用できないことを検出したらサイズ変更をスキップできます。
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.
}
データストアの読み取りと書き込みが可能かどうかを調べるには、別のクエリを実行できます。次の例は、データストアが書き込み可能であるかを確認し、ダウンタイム中であればユーザーにメッセージを表示する方法を示しています。
CapabilityStatus status =
service.getStatus(Capability.DATASTORE_WRITE).getStatus();
if (status == CapabilityStatus.DISABLED) {
// Datastore is in read-only mode.
}
Java 8 での Capabilities API の使用
各機能(Capability)は、Capability クラスで静的定数として表されます(例: Capability.DATASTORE_WRITE
)。それぞれの機能には状態があります。この状態は、CapabilitiesService.getStatus(Capability)
から取得できます。それぞれの状態にステータスがあります。ステータスは、ある機能が使用可能であるかどうかを ENABLED
または DISABLED
のいずれかで反映する列挙型定数です。現在この API で有効なサービスの一覧については、次のセクションをご覧ください。
サポートされている機能
この API は現在、次の機能をサポートしています。
機能 | getStatus への引数 |
---|---|
blobstore の利用可否 | Capability.BLOBSTORE |
データストアの読み取り | Capability.DATASTORE |
データストアの書き込み | Capability.DATASTORE_WRITE |
画像サービスの利用可否 | Capability.IMAGES |
メールサービスの利用可否 | Capability.MAIL |
Memcache サービスの利用可否 | Capability.MEMCACHE |
タスクキュー サービスの利用可否 | Capability.TASKQUEUE |
URL 取得サービスの利用可否 | Capability.URL_FETCH |