Menggunakan Modules API

Modules API menyediakan fungsi yang menampilkan informasi tentang lingkungan operasi saat ini (modul, versi, dan instance).

Modules API juga memiliki fungsi yang mengambil alamat modul, versi, atau instance. Hal ini memungkinkan aplikasi mengirim permintaan dari satu instance ke instance lainnya, dalam lingkungan pengembangan dan produksi.

Contoh kode berikut menunjukkan cara mendapatkan nama modul dan ID instance untuk permintaan:

import com.google.appengine.api.modules.ModulesService;
import com.google.appengine.api.modules.ModulesServiceFactory;

ModulesService modulesApi = ModulesServiceFactory.getModulesService();

// Get the service name handling the current request.
String currentModuleName = modulesApi.getCurrentModule();
// Get the instance handling the current request.
int currentInstance = modulesApi.getCurrentInstance();

ID instance modul yang diskalakan secara otomatis akan ditampilkan sebagai nilai berenkode base64 yang unik, misalnya e4b565394caa.

Anda dapat berkomunikasi antar-modul dalam aplikasi yang sama dengan mengambil nama host modul target:

Contoh kode berikut menunjukkan cara mendapatkan nama modul dan ID instance untuk permintaan:

import com.google.appengine.api.modules.ModulesService;
import com.google.appengine.api.modules.ModulesServiceFactory;

import java.net.MalformedURLException;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

// ...

ModulesService modulesApi = ModulesServiceFactory.getModulesService();

// ...
    try {
        URL url = new URL("http://" +
            modulesApi.getVersionHostname("my-backend-service","v1") +
            "/fetch-stats");
        BufferedReader reader = new BufferedReader(
            new InputStreamReader(url.openStream()));
        String line;

        while ((line = reader.readLine()) != null) {
            // Do something...
        }
        reader.close();

    } catch (MalformedURLException e) {
        // ...
    } catch (IOException e) {
        // ...
    }

Anda juga dapat menggunakan layanan URL Fetch.