javascript - 如何使用适用于 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();
解决方案
您的语法是正确的,但恐怕 API 本身不支持这一点。虽然 AAD 资源支持$expand
,但存在一些严重的限制:
它仅在 Beta 版本中受支持。至于为什么它仅限于 Beta,可以肯定的是,它是由于下一点。
您不能在同一个查询中同时使用
$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 文档中的批处理。
推荐阅读
- amazon-web-services - 谷歌地图在运行 Windows 服务器的浏览器中工作,但不在 Ubuntu 服务器上
- python - 使用 Django 流式传输 JSON 的正确方法
- java - 哈希符号显示在java中的文件中
- ms-access - MS Access db,VBA 表单动态默认值条件
- react-native - 在本机反应中创建对象
- html - 如何摆脱不同引导类/元素之间的空白?
- java - 规范是否保证对顺序 Java 流的操作必须保留在当前线程中?
- python-3.x - 尝试在 main 方法中创建对象,但出现错误。蟒蛇 3
- batch-file - 在命令提示符中的文本文件中显示行 (n)
- javascript - 从跨越整个容器的行引导下拉 div