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 Methode für die Paginierung ist die Verwendung der iterateAll()-Methode. 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();