Die meisten Listenmethoden in der Google Cloud Java-Bibliothek geben ein PagedResponse
Objekt zurück. So können Sie Ergebnisse durchlaufen, ohne Seitentokens manuell verwalten zu müssen.
Die einfachste Möglichkeit, die Paginierung zu verarbeiten, ist die Verwendung der Methode iterateAll(). Die Bibliothek ruft automatisch neue Seiten im Hintergrund ab, während Sie die Sammlung durchlaufen.
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());
}
}
Manuelle Paginierung (Zugriff auf Tokens)
Wenn Sie die Paginierung manuell steuern müssen (z.B. für eine Web-API, die Tokens an ein Frontend sendet), können Sie über die Antwort auf nextPageToken zugreifen.
// 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();