Mengelola penomoran halaman

Sebagian besar metode daftar di library Java Google Cloud menampilkan objek PagedResponse. Hal ini memungkinkan Anda melakukan iterasi pada hasil tanpa mengelola token halaman secara manual.

Cara termudah untuk menangani penomoran halaman adalah dengan menggunakan metode iterateAll(). Library akan otomatis mengambil halaman baru di latar belakang saat Anda melakukan iterasi melalui kumpulan.

import com.google.cloud.secretmanager.v1.ListSecretsRequest;
import com.google.cloud.secretmanager.v1.ProjectName;
import com.google.cloud.secretmanager.v1.Secret;
import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;

try (SecretManagerServiceClient secretManager = SecretManagerServiceClient.create()) {
    // Prepare the request
    ListSecretsRequest request = ListSecretsRequest.newBuilder()
        .setParent(ProjectName.of("my-project").toString())
        .build();

    // Call the API
    // This returns a PagedResponse
    SecretManagerServiceClient.ListSecretsPagedResponse response = secretManager.listSecrets(request);

    // Automatically fetches subsequent pages of secrets
    for (Secret secret : response.iterateAll()) {
        System.out.printf("Secret: %s%n", secret.getName());
    }
}

Penomoran halaman manual (mengakses token)

Jika perlu mengontrol penomoran halaman secara manual (misalnya, untuk API web yang mengirim token ke frontend), Anda dapat mengakses nextPageToken dari respons.

// Prepare request with page size and optional token
ListSecretsRequest.Builder requestBuilder = ListSecretsRequest.newBuilder()
    .setParent(ProjectName.of("my-project").toString())
    .setPageSize(10);

// Check if we have a token from a previous request (e.g., from a query parameter)
String pageToken = request.getParameter("page_token");
if (pageToken != null) {
    requestBuilder.setPageToken(pageToken);
}

SecretManagerServiceClient.ListSecretsPagedResponse response = secretManager.listSecrets(requestBuilder.build());

// Process current page items
for (Secret secret : response.getPage().getValues()) {
    // Process current page items
}

// Get the token for the next page (empty string if no more pages)
String nextToken = response.getNextPageToken();