You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Graph API的$top参数导致@odata.count返回异常求助

解决Microsoft Graph API获取作业时$top与@odata.count冲突的问题

这个问题是因为beta版本的education/me/assignments端点在同时使用$top和$count=true时,@odata.count会返回当前分页的条目数,而非全量数据的总数量——这是该端点的特定行为,和你之前使用的用户数据端点逻辑不同。

下面是两种可行的解决办法:

方案一:拆分两次独立请求(推荐)

这是最简单直接且稳定的方式:

  1. 单独请求总数量:
    GET https://graph.microsoft.com/beta/education/me/assignments?$count=true
    
    从响应的@odata.count字段获取实际总数量(比如你场景里的7)。
  2. 请求前3条作业数据:
    GET https://graph.microsoft.com/beta/education/me/assignments?$expand=submissions&$top=3&$orderby=dueDateTime%20asc
    
    拿到你需要的前3条作业内容。

这种方式逻辑清晰,兼容性强,对大多数场景都适用。

方案二:通过分页链接累加总数量(不推荐)

如果不想发起两次请求,可以循环调用响应中的@odata.nextLink,直到没有下一页为止,累加每一页的条目数得到总数量。但这种方式效率低,且beta版本API行为可能变更,仅适合数据量极小的场景,不建议用于生产环境。

另外提醒:beta版本的API功能尚未稳定,正式上线前建议确认education/assignments是否已在v1.0版本可用,v1.0的端点行为通常更规范,可能不会出现这类问题。

内容的提问来源于stack exchange,提问作者SZ.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 14:16:04