如何使用 JavaScript 的 Microsoft Graph 客户端 select 扩展字段中的字段

How to select fields in the expanded field with Microsoft Graph Client for JavaScript

根据 JavaScript documentation 的 Microsoft Graph 客户端,客户端支持 $expand 查询参数并且工作正常。

由于 Microsoft Graph API 支持在使用 ($expand=attachments($select=name,size)) 时在扩展字段内进行选择,我该如何使用 JavaScript SDK/Client?

我试过类似的方法,但它 returns 扩展管理器的大量属性(我试图避免的事情):

client
  .api('/users')
  .expand('manager($select=displayName)')
  .get();

您的语法是正确的,但 API 本身恐怕不支持。虽然 AAD 资源支持 $expand,但存在一些严重的限制:

  1. 仅Beta版支持。至于为什么限定Beta,我猜是因为下一点。

  2. 您不能在同一查询中同时使用 $expand$select。换句话说,不仅 /me?$expand=manager($select=displayName) 会失败,/me?$select=id,displayName&$expand=manager($select=displayName)/me?$select=id,displayName&$expand=manager 也会失败。

鉴于数据的价值最终返回并被限制为 Beta 版本,$expand 在涉及 DirectoryObject 时实际上被降级为少数边缘情况。

我的建议是避免扩展管理器,而是将页面大小设置为 20,并为每个数据页构建一个 batch request 来拉动管理器。这使您可以显着减少线路上的数据量,将出站调用的数量保持在每页仅两个,并且可以完全在 v1.0 版本中完成。

有关如何构造批量请求的详细信息,请参阅 SDK 文档中的 Batching