A API usa o padrão nextToken para paginação. Ao listar transações, a resposta inclui um nextToken que deve ser enviado na próxima requisição para obter a página seguinte.
Use o campo nextToken da resposta para buscar a próxima página. Quando nextToken for null/vazio, não há mais páginas.
let nextToken: string | undefined;
do {
const page = await client.transactions.list({
status: 'COMPLETED',
limit: 25,
nextToken,
});
for (const tx of page.transactions) {
console.log(tx.transactionId, tx.status);
}
console.log(`${page.count} transações nesta página`);
nextToken = page.nextToken;
} while (nextToken);
from signdocs_brasil.models import TransactionListParams
next_token = None
while True:
page = client.transactions.list(TransactionListParams(
status='COMPLETED',
limit=25,
next_token=next_token,
))
for tx in page.transactions:
print(tx.transaction_id, tx.status)
print(f'{page.count} transações nesta página')
next_token = page.next_token
if not next_token:
break
var nextToken string
for {
page, _ := client.Transactions.List(ctx, &signdocs.TransactionListParams{
Status: signdocs.TransactionStatusCompleted,
Limit: 25,
NextToken: nextToken,
})
for _, tx := range page.Transactions {
fmt.Println(tx.TransactionID, tx.Status)
}
fmt.Printf("%d transações nesta página\n", page.Count)
nextToken = page.NextToken
if nextToken == "" {
break
}
}
TransactionListParams params = new TransactionListParams();
params.status = "COMPLETED";
params.limit = 25;
String nextToken = null;
do {
params.nextToken = nextToken;
TransactionListResponse page = client.transactions().list(params);
for (Transaction tx : page.transactions) {
System.out.println(tx.transactionId + " " + tx.status);
}
System.out.println(page.count + " transações nesta página");
nextToken = page.nextToken;
} while (nextToken != null);
$nextToken = null;
do {
$page = $client->transactions->list(new TransactionListParams(
status: 'COMPLETED',
limit: 25,
nextToken: $nextToken,
));
foreach ($page->transactions as $tx) {
echo $tx->transactionId . ' ' . $tx->status . PHP_EOL;
}
echo count($page->transactions) . " transações nesta página\n";
$nextToken = $page->nextToken;
} while ($nextToken !== null);
Todos os SDKs oferecem um método de auto-paginação que busca todas as páginas automaticamente de forma lazy (sob demanda).
listAutoPaginate retorna um AsyncGenerator:
for await (const tx of client.transactions.listAutoPaginate({ status: 'COMPLETED' })) {
console.log(tx.transactionId, tx.status);
}
list_auto_paginate retorna um Iterator:
for tx in client.transactions.list_auto_paginate(TransactionListParams(status='COMPLETED')):
print(tx.transaction_id, tx.status)
ListAutoPaginate retorna um PageIterator com padrão Next/Value/Err:
iter := client.Transactions.ListAutoPaginate(&signdocs.TransactionListParams{
Status: signdocs.TransactionStatusCompleted,
})
for iter.Next(ctx) {
tx := iter.Value()
fmt.Println(tx.TransactionID, tx.Status)
}
if err := iter.Err(); err != nil {
log.Fatal(err)
}
listAutoPaginate retorna um Iterable:
for (Transaction tx : client.transactions().listAutoPaginate(
new TransactionListParams("COMPLETED", null, null, null, null))) {
System.out.println(tx.transactionId + " " + tx.status);
}
listAutoPaginate retorna um Generator:
foreach ($client->transactions->listAutoPaginate(
new TransactionListParams(status: 'COMPLETED')
) as $tx) {
echo $tx->transactionId . ' ' . $tx->status . PHP_EOL;
}
| Parâmetro | Tipo | Descrição |
|---|---|---|
status |
string | Filtrar por status (CREATED, COMPLETED, CANCELLED, etc.) |
userExternalId |
string | Filtrar por ID externo do signatário |
documentGroupId |
string | Filtrar por grupo de documentos |
limit |
int | Número máximo de resultados por página (padrão definido pela API) |
nextToken |
string | Token para a próxima página |