Carregar os e-mails de um usuário em lotes
Você criou um aplicativo JavaScript, conectou-o Microsoft 365 e exibiu os últimos 10 emails do usuário usando Microsoft Graph. Agora, vamos estender o aplicativo para que os usuários possam carregar seus emails em lotes de 10 itens.
Recuperar dados páginados usando o Microsoft Graph
Quando você chama uma API de Microsoft Graph que retorna uma coleção de dados, como a API de mensagens que você usou anteriormente, você recebe um subconjunto dos dados armazenados Microsoft 365. Para verificar se há mais dados para o aplicativo recuperar, verifique se a resposta contém a propriedade @odata.nextLink
.
var emails = graphClient
.api('/me/messages')
.select('subject,receivedDateTime')
.orderby('receivedDateTime desc')
.top(10)
.get();
if (emails['@odata.nextLink']) {
// more data available
}
A @odata.nextLink
contém uma URL completa que você pode chamar para recuperar a segunda página de resultados. Essa URL preserva todas as configurações da solicitação inicial, como quais propriedades recuperar, como classificar os dados e quantos itens obter.
Para carregar o próximo lote de dados, passe a URL retornada no @odata.nextLink
para o graphClient
:
var emails = graphClient
.api('/me/messages')
.select('subject,receivedDateTime')
.orderby('receivedDateTime desc')
.top(10)
.get();
if (emails['@odata.nextLink']) {
var moreEmails = graphClient
.api(emails['@odata.nextLink'])
.get();
}
Depois de recuperar a segunda página de resultados, você pode ver se há mais dados disponíveis verificando se os resultados têm a propriedade @odata.nextLink
definida.
Cuidado
Microsoft Graph segue o padrão OData 4. Uma parte do padrão é a capacidade de usar a combinação de parâmetros $top
e $skip
(os métodos top
e skip
no SDK do Microsoft Graph) para recuperar uma página específica de dados. Isso não é possível ao trabalhar com emails porque uma pasta de email pode conter dados diferentes de email que possam afetar a paginação. É por isso que, ao trabalhar com emails, você sempre deve usar o valor @odata.nextLink
para carregar mais dados.
Próximas etapas
Vamos estender o aplicativo para que ele permita que os usuários carreguem mais emails em lotes.