microsoft-graph-api - 即使 $top=1,Microsoft Graph 也会显示 @nextlink?
问题描述
我们正在使用 MS Graph OData API 查询数据,但我发现 msGraph 出现nextlink
意外。
例如,即使我打算通过指定仅查询一条记录$top=1
:
https://graph.microsoft.com/v1.0/users?$top=1
在响应中有一个@nextlink
,这会导致我们的工具对该链接进行另一个查询。
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
"**@odata.nextLink**": "https://graph.microsoft.com/v1.0/users?$top=1&$skiptoken=X%2744537074020001000000223A4164616D73404D333635783231343335352E6F6E6D6963726F736F66742E636F6D29557365725F36653762373638652D303765322D343831302D383435392D343835663834663866323034B900000000000000000000%27",
"value": [
{
"id": "6e7b768e-07e2-4810-8459-485f84f8f204",
"businessPhones": [],
"displayName": "Conf Room Adams",
"givenName": null,
"jobTitle": null,
"mail": "Adams@M365x214355.onmicrosoft.com",
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": null,
"userPrincipalName": "Adams@M365x214355.onmicrosoft.com"
}
]
}
可以在图形浏览器中重现它
它是否按预期工作?我认为应该没有下一个链接,因为我只想要一个记录。这是一个错误吗?
解决方案
使用$top=x
实际上并不意味着
我希望你只给我看前 x 条记录,而忽略其余的
它的作用(基于查询参数 docs)是:
设置结果的页面大小。
您看到的是预期的结果,因为 using$top
是使用分页的情况之一:
由于服务器端分页或使用 $top 查询参数专门限制请求中的页面大小,一些针对 Microsoft Graph 的查询会返回多页数据。
并进一步:
当结果集跨越多个页面时,Microsoft Graph
@odata.nextLink
会在响应中返回一个属性,其中包含指向下一页结果的 URL。
这正好回答了你的问题。如果你想。随时阅读更多关于分页的信息。
还要记住,在使用$top
查询参数时,记住排序是一个好习惯(来源:OData 官方文档)。
推荐阅读
- canvas - 我如何在我的 fabric.js 画布中引入基于键的事件?
- javascript - 带有按钮和输入的弹出式 HTML 内容未呈现
- php - 更改功能以显示日期
- python - 带有 DRF 的 django-filter 不加入过滤器字段
- python - ValueError:检查输入时出错:预期dense_input的形状为(46,)但得到的数组形状为(1,)
- algorithm - 显示 2^n 是 O(n!)
- ruby-on-rails - 使用 delete_all/delete 删除 rails 活动记录违反外键约束
- docker - 如何让 docker-compose 在 windows 上 docker 生成的 jenkins 管道中工作?
- c# - Wpf Desktop Api 调用持续时间比实际 api 响应时间长约 8-10 秒
- git - github merge "pull-request" 和 gitlab merge "merge-request" 的区别