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:
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.
}
Anda dapat secara terpisah mengkueri ketersediaan pembacaan dan penulisan Datastore. Contoh berikut menunjukkan cara mendeteksi ketersediaan penulisan Datastore dan, selama periode nonaktif, memberikan pesan kepada pengguna:
CapabilityStatus status =
service.getStatus(Capability.DATASTORE_WRITE).getStatus();
if (status == CapabilityStatus.DISABLED) {
// Datastore is in read-only mode.
}
Menggunakan Capabilities API di Java 8
Setiap Capability direpresentasikan sebagai konstanta statis pada class Capability, seperti Capability.DATASTORE_WRITE
.
Setiap Capability memiliki status yang dapat Anda ambil dari CapabilitiesService.getStatus(Capability)
.
Setiap status memiliki enumerasi yang mencerminkan ketersediaan kemampuan: ENABLED
atau DISABLED
. 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 getStatus |
---|---|
Ketersediaan blobstore | Capability.BLOBSTORE |
Pembacaan Datastore | Capability.DATASTORE |
Penulisan Datastore | Capability.DATASTORE_WRITE |
Ketersediaan layanan Images | Capability.IMAGES |
Ketersediaan layanan Mail | Capability.MAIL |
Ketersediaan layanan Memcache | Capability.MEMCACHE |
Ketersediaan layanan Task Queue | Capability.TASKQUEUE |
Ketersediaan layanan URL Fetch | Capability.URL_FETCH |