Como trabalhar com operações de lista

Alguns serviços retornam listas potencialmente grandes de itens, como linhas ou descrições de recursos. Para manter o uso de CPU e uso da memória sob controle, os serviços retornam esses recursos em pages: subconjuntos menores dos itens com um token de continuação para solicitar o próximo subconjunto.

Iterar itens por página pode ser cansativo. As bibliotecas de cliente fornecem adaptadores para converter as páginas em iteradores assíncronos. Este guia mostra como trabalhar com esses adaptadores.

Pré-requisitos

Este guia usa o serviço Secret Manager para demonstrar operações de lista. Os conceitos incluídos neste guia também se aplicam a outros serviços.

Para seguir este guia, você precisa ter ativado o serviço Secret Manager, feito login e garantido que sua conta tenha as permissões necessárias. Para orientações sobre como atender a esses pré-requisitos, siga o guia de início rápido do serviço.

Para instruções completas de configuração das bibliotecas Rust, consulte Como configurar seu ambiente de desenvolvimento.

Dependências

Adicione a biblioteca do Secret Manager ao arquivo Cargo.toml:

cargo add google-cloud-secretmanager-v1

Iteração de métodos de lista

Para ajudar a iterar os itens em um método de lista, as APIs retornam uma implementação da característica ItemPaginator. Introduza a característica no escopo usando uma declaração use:

use google_cloud_gax::paginator::ItemPaginator as _;

Para iterar os itens, use o método by_item.

let mut list = client
    .list_secrets()
    .set_parent(format!("projects/{project_id}"))
    .by_item();
while let Some(secret) = list.next().await {
    let secret = secret?;
    println!("  secret={}", secret.name)
}

Em casos raros, as páginas podem conter informações extras que você precisa acessar, ou talvez seja necessário verificar seu progresso em vários processos. Se necessário, você pode iterar páginas inteiras em vez de itens individuais.

  1. Introduza Paginator no escopo usando uma declaração use: