Microsoft Graph API操作Sites问题:filter无效、orderby仅单页排序
解决Microsoft Graph API查询Sites的过滤与排序问题
一、修复createdDateTime过滤语句错误
你之前的过滤语句错误在于日期字面量未用单引号包裹,OData规范要求日期、字符串这类字面量必须用单引号括起来。正确的过滤语句应为:
createdDateTime ge '2023-01-01T00:00:00Z'
将此作为$filter参数传入请求,即可正确筛选创建时间晚于指定日期的站点。
二、解决全局排序与分页混乱问题
Microsoft Graph API的$orderby是对整个数据集进行排序后再分页返回的,出现分页顺序混乱的原因通常是以下两点:
- 未将
$orderby与$filter同时加入请求,导致仅对单页数据临时排序 - 未按响应返回的
@odata.nextLink依次获取下一页数据,而是自行构造分页参数
正确的请求参数组合示例(以GET请求为例):
GET https://graph.microsoft.com/v1.0/sites?$filter=createdDateTime ge '2023-01-01T00:00:00Z'&$orderby=createdDateTime desc&$top=100
说明:
$filter:按创建时间过滤目标站点$orderby=createdDateTime desc:对整个数据集按创建时间倒序排序(正序排序用asc)$top:控制每页返回的最大条目数(最大支持100)
获取分页数据时,必须使用响应中返回的@odata.nextLink地址发起下一页请求,这样就能保证拿到的是全局排序后的连续分页结果。
内容的提问来源于stack exchange,提问作者A X
相关产品推荐
相关产品推荐

