即使$ top = 1,Microsoft Graph也会显示@nextlink?

时间:2018-08-07 08:05:35

标签: microsoft-graph

我们正在使用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"
        }
    ]
}

一个人可以在graph-explorer中复制它

它按预期工作吗? 我认为应该没有nextlink,因为我只想要一个记录。这是错误吗?

1 个答案:

答案 0 :(得分:1)

使用$top=x并不实际

  

我希望您仅向我显示x条记录,而忽略其余的

其角色(基于query parameter docs)是:

  

设置结果的页面大小。

您看到的是预期的结果,因为使用$top是使用分页的情况之一:

  

某些针对Microsoft Graph的查询返回多页数据,可能是由于服务器端分页,或者是由于使用$ top查询参数专门限制了请求中的页面大小。 >

进一步:

  

当结果集跨越多个页面时,Microsoft Graph将在响应中返回一个@odata.nextLink属性,该属性包含指向下一页结果的URL。

准确回答您的问题。如果你想。随时阅读有关分页here的更多信息。


还请记住,在使用$top查询参数时,记住有关排序的一种好习惯(来源:OData official documentation)。