odata nextLink 出现在每个响应中

Posted

技术标签:

【中文标题】odata nextLink 出现在每个响应中【英文标题】:odata nextLink is present in every response 【发布时间】:2021-10-27 14:12:44 【问题描述】:

我正在查询 azure 活动目录以获取用户列表,一个请求仅获取 100 条记录。

为了获得更多记录,我在 odata.nextLink 存在时提出请求。

问题是:

它始终存在,永远不会为空。 始终获取数据。 提取的数据重复。

为什么会这样?

谢谢

【问题讨论】:

【参考方案1】:

其中一种解决方法是,除了记录之外,我们还可以选择逐页获取。客户端可以使用值为“allpages”的 $inlinecount 查询选项来获取返回集中的项目总数。


  "odata.metadata":"http://localhost/$metadata#Products",
  "value":[
     "ID":1,"Name":"Hat","Price":"15","Category":"Apparel" ,
     "ID":2,"Name":"Socks","Price":"5","Category":"Apparel" ,
    // Others not shown
  ],
  "odata.nextLink":"http://localhost/Products?$inlinecount=allpages"

参数“allpages”指示服务器返回整个页面数:


  "odata.metadata":"http://localhost/$metadata#Products",
  "odata.count":"50",
  "value":[
     "ID":1,"Name":"Hat","Price":"15","Category":"Apparel" ,
     "ID":2,"Name":"Socks","Price":"5","Category":"Apparel" ,
    // Others not shown
  ]

更多相关问题可以参考Server-Driven Paging。

参考: https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options#server-driven-paging

【讨论】:

以上是关于odata nextLink 出现在每个响应中的主要内容,如果未能解决你的问题,请参考以下文章

OData v4 WebAPI 响应中的项目计数

反序列化 OData 响应

我们可以使用OData客户端为syncfusion网格创建我们的请求但是使用正常响应(Reqular WebAPI)

OData 带更新的实例,并能取得元数据格式类型

挂钩 OData 的 $metadata 响应并将其从 XML 转换为 JSON

使用 OData 响应 Owin Self-Host 忽略 Web Api 中的 Null 属性/值