首页 > 解决方案 > 如何使用适用于 JavaScript 的 Microsoft Graph 客户端在展开的字段中选择字段

问题描述

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

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

我已经尝试过这样的事情,但是它为扩展的管理器返回了过多的属性(我试图避免这种情况):

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

标签: javascriptmicrosoft-graph-apimicrosoft-graph-sdks

解决方案


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

  1. 它仅在 Beta 版本中受支持。至于为什么它仅限于 Beta,可以肯定的是,它是由于下一点。

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

考虑到最终返回的数据价值并仅限于 Beta 版本,$expand当涉及到 DirectoryObject 时,它实际上被归为少数极端情况。

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

有关如何构造批处理请求的更多信息,请参阅SDK 文档中的批处理


推荐阅读