Paginação de dados do Microsoft Graph em seu aplicativo
Algumas consultas GET no Microsoft Graph devolvem múltiplas páginas de dados devido à paginação do lado do servidor ou à paginação do lado do cliente. A paginação de dados ajuda a melhorar o desempenho da sua aplicação e o tempo de resposta do Microsoft Graph.
Observação
Se estiver à procura de informações sobre paginação nos SDKs do Microsoft Graph, consulte Page through a collection using the Microsoft Graph SDKs (Página através de uma coleção com os SDKs do Microsoft Graph).
Saiba mais sobre a paginação através do seguinte vídeo.
Como funciona a paginação
Na paginação do lado do cliente, uma aplicação cliente especifica o número de resultados que pretende que o Microsoft Graph devolva numa única página com os parâmetros de consulta $top, $skip ou $skipToken . O suporte para paginação do lado do cliente, incluindo o número de resultados que o cliente pode pedir numa única página, depende da API e da consulta que está a ser executada. Por exemplo, o /users
ponto final suporta $top
, mas não $skip
.
Na paginação do lado do servidor, o serviço Microsoft Graph devolve um número predefinido de resultados numa única página sem que o cliente especifique o número de resultados a devolver com $top
. Por exemplo, o GET /users
ponto final devolve uma predefinição de 100 resultados numa única página.
Quando é necessário mais do que um pedido de consulta para obter todos os resultados, o Microsoft Graph devolve uma @odata.nextLink
propriedade na resposta que contém um URL para a página seguinte dos resultados. Você pode recuperar a próxima página de resultados enviando o valor de URL da propriedade @odata.nextLink
para o Microsoft Graph. O Microsoft Graph continuará a devolver uma referência à próxima página de resultados na @odata.nextLink
propriedade com cada resposta até que não existam mais páginas de resultados a obter. Para ler todos os resultados, tem de continuar a chamar o Microsoft Graph com a @odata.nextLink
propriedade devolvida em cada resposta até que a @odata.nextLink
propriedade deixe de ser devolvida.
Por exemplo, o exemplo seguinte mostra a paginação do lado do cliente onde o cliente utiliza o $top
parâmetro de consulta para pedir até cinco utilizadores no inquilino.
GET https://graph.microsoft.com/v1.0/users?$top=5
Se o resultado contiver mais resultados, o Microsoft Graph devolve uma @odata.nextLink
propriedade semelhante à seguinte, juntamente com a primeira página de resultados:
"@odata.nextLink": "https://graph.microsoft.com/v1.0/users?$top=5&$skiptoken=RFNwdAIAAQAAAD8...AAAAAAAA"
Utilize o URL completo na @odata.nextLink
propriedade num pedido GET para obter a página seguinte dos resultados. Consoante a API em que a consulta está a ser executada, o valor do @odata.nextLink
URL contém um $skiptoken
parâmetro de consulta ou .$skip
A URL também contém todos os outros parâmetros de consulta presentes na solicitação original. Não tente extrair o valor ou $skip
e utilize-o $skiptoken
num pedido diferente.
O comportamento de paginação varia entre diferentes APIs do Microsoft Graph. Ao trabalhar com dados paginados, considere o seguinte:
- Uma página de resultados pode conter zero ou mais resultados.
- APIs diferentes podem ter tamanhos padrão e máximo de página diferentes.
- APIs diferentes poderão se comportar de maneira diferente se você especificar um tamanho de página (por meio do parâmetro de consulta
$top
) que exceda o tamanho máximo de página para essa API. Dependendo da API, o tamanho de página solicitado pode ser ignorado, ele pode usar por padrão o tamanho máximo de página para essa API ou o Microsoft Graph pode retornar um erro. - Nem todos os recursos ou relações suportam paginação. Por exemplo, as consultas no diretórioRole não suportam paginação. Isto inclui a leitura de objetos de função e membros da função.
- Ao paginar os recursos de diretório, os cabeçalhos de pedido personalizados (cabeçalhos que não sejam cabeçalhos de Autorização ou Tipo de Conteúdo), como o cabeçalho ConsistencyLevel , não são incluídos por predefinição nos pedidos de página subsequentes. Se esses cabeçalhos precisam ser enviados em solicitações subsequentes, você deve defini-los explicitamente.
- Ao utilizar a
$count=true
cadeia de consulta ao consultar recursos de diretório, a@odata.count
propriedade é devolvida apenas na primeira página do conjunto de resultados paginado.
Conteúdo relacionado
- Os SDKs do Microsoft Graph fornecem classes e métodos para ajudar na paginação. Para obter detalhes, consulte Page through a collection using the Microsoft Graph SDKs (Página através de uma coleção com os SDKs do Microsoft Graph).