Die meisten Listenmethoden in der Cloud de Confiance by S3NS -Java-Bibliothek geben ein PagedResponse-Objekt zurück. So können Sie Ergebnisse durchlaufen, ohne Seitentokens manuell verwalten zu müssen.
Am einfachsten lässt sich die Paginierung mit der Methode iterateAll() verarbeiten. 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();