用户$ Skip和$ Count

时间:2019-07-09 21:26:06

标签: azure microsoft-graph

在调用用户集合时,Microsoft Graph api不支持$ skip和$ count。

虽然我知道skipToken允许您使用某些分页功能,但它限制了我应用程序中用户页面的分页功能。

正在使用的AD租户拥有6000多个用户,并且全部下载时间很长。

我要在服务器上缓存它们并定期检查更新,但是我想检查以确保没有丢失任何东西。

是否可以使用$ count和$ skip或我不知道的等效项?

2 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用Optional Query Parameters,它支持$count$top

如您所知,不支持$ skip,因此您可以按照以下方式申请

 https://graph.microsoft.com/v1.0/users?$orderby=userPrincipalName desc&$select=id,mail,userType,userPrincipalName,preferredDataLocation&$top=5&$count=true

注意:因此,当您选择最高值后,在此列表之后按降序过滤时,它可以像跳过一样工作。可能是您的工作。

示例查询:

对于查询示例,您可以尝试以下URL:

顶部:

 Method Type: GET
 https://graph.microsoft.com/v1.0/users?$top=2

计数:

Method Type: GET
https://graph.microsoft.com/v1.0/users?$count=true

有关更多详细信息,请查看official docs here

答案 1 :(得分:0)

  

Microsoft Graph Api在以下情况下不支持$ skip和$ count   调用用户集合。

是正确的,这是official documentation的摘录:

  来源的资源集合不支持

$count   来自directoryObject,例如用户或组的集合。

$skip parameter也是如此,List users endpoint不支持。

对于paging scenarios $skipToken参数,需要与$top参数一起使用。

示例

假设页面大小为100个项目,以下查询将检索第一页的用户:

GET https://graph.microsoft.com/v1.0/users?$top=100

如果结果包含100个以上的用户,Microsoft Graph将返回一个@odata:nextLink属性。通过发送@odata:nextLink属性的url值来检索下一页结果:

GET https://graph.microsoft.com/v1.0/users?$top=100&$skiptoken={skipToken}