Capabilities API for Java 8 の概要

アプリケーションでは 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