在调用用户集合时,Microsoft Graph api不支持$ skip和$ count。
虽然我知道skipToken允许您使用某些分页功能,但它限制了我应用程序中用户页面的分页功能。
正在使用的AD租户拥有6000多个用户,并且全部下载时间很长。
我要在服务器上缓存它们并定期检查更新,但是我想检查以确保没有丢失任何东西。
是否可以使用$ count和$ skip或我不知道的等效项?
答案 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}