Paginação com o Vonage Client SDK
Product deprecation notice
Effective April 30th, 2026, Vonage In-App Messaging will no longer be available. Access for new users will be closed, and the service will be discontinued for all existing users.
If you have any questions regarding this product’s discontinuation, please contact your account manager or our support team.
Ao obter uma lista de objetos com o Vonage Client SDK, a resposta será paginada. Isso significa que, em vez de retornar todos os objetos de uma só vez — o que aumentaria a latência e o tamanho da resposta —, você receberá um bloco da resposta ou um página. Por exemplo, ao chamar getConversations retornará um ConversationsPage.
As funções que retornam uma página terão parâmetros para o tamanho da página e um cursor. Ao fornecer um cursor, é possível percorrer as páginas até obter todos os resultados. Aqui está um exemplo de como obter conversas.
let conversations, nextCursor, previousCursor
const params = {
order: "asc", // "desc"
pageSize: 5,
cursor: null,
includeCustomData: true,
orderBy: null // "CUSTOM_SORT_KEY"
};
client.getConversations(params)
.then(conversationsPage => {
({conversations, nextCursor, previousCursor} = conversationsPage);
console.log("Array of Conversations: ", conversations);
console.log("Cursor for next set of results, if any. Could be null: ", nextCursor);
console.log("Cursor for previous set of results, if any. Could be null: ", previousCursor);
}).catch(error => {
console.error("Error getting Conversations: ", error);
});
val params = GetConversationsParameters(order = PresentingOrder.ASC, pageSize = 5, cursor = null)
client.getConversations(params) { error, conversationsPage ->
error?.let { /* Handle Error in fetching Conversations */ }
conversationsPage?.let {
val nextCursor = it.nextCursor
val previousCursor = it.previousCursor
it.conversations.forEach {conversation ->
println("Conversation id: ${conversation.id}, name: ${conversation.name}")
}
}
}
let params = VGGetConversationsParameters(order: .asc, pageSize: 5, cursor: nil)
client.getConversations(params) { error, conversationsPage in
if error == nil {
let conversations = conversationsPage!.conversations
let nextCursor = conversationsPage!.nextCursor
let previousCursor = conversationsPage!.previousCursor
} else {
// Handle failure
}
}
No ConversationsPage existe um nextCursor e previousCursor parâmetro. Para obter a próxima página de Conversas, chame getConversations novamente, mas desta vez forneça o valor da variável atual ConversationsPage.nextCursor para o cursor:
const params = {
order: "asc", // "desc"
pageSize: 5,
cursor: nextCursor, // previousCursor
includeCustomData: true,
orderBy: null // "CUSTOM_SORT_KEY"
};
client.getConversations(params)
...
val params = GetConversationsParameters(order = PresentingOrder.ASC, pageSize = 5, cursor = nextCursor)
client.getConversations(params) { error, conversationsPage ->
error?.let { /* Handle Error in fetching Conversations */ }
conversationsPage?.let {
it.conversations.forEach {conversation ->
println("Conversation id: ${conversation.id}, name: ${conversation.name}")
}
}
}
let params = VGGetConversationsParameters(order: .asc, pageSize: 5, cursor: nextCursor)
client.getConversations(params) { error, conversationsPage in
...
}
Quando você chegar ao final dos resultados, nextCursor será nulo. Por outro lado, quando você chegar ao início dos resultados previousCursor será nulo.