从用户和扩展管理器中选择特定字段

And*_*ner 5 microsoft-graph-api

我想获得所有用户的经理关系,这可以通过https://graph.microsoft.com/beta/users?expand=manager轻松完成。

但我获取了所有用户的所有数据以及每个经理的所有数据,这太多了!我想将结果集限制为仅返回用户的 id 和 displayName,以及仅返回经理关系上的 id。

https://graph.microsoft.com/beta/users?select=id,displayName&expand=manager(select=id)

这不起作用,我收到此错误:

术语“manager($select=id)”在 $select 或 $expand 表达式中无效。

任何帮助深表感谢。

Sha*_*tel 2

遗憾的是,我也在寻找这个 - 似乎不支持:

https://developer.microsoft.com/en-us/graph/docs/concepts/query_parameters#expand-parameter

并非所有资源或关系都支持在扩展项目上使用 $select。

我认为这意味着您不能在管理器扩展上使用选择。

我什至会更进一步说,您不能在用户查询本身上使用 select,因为即使具有其所有属性,也无法在 select 中包含扩展的“管理器”。一旦您设置了选择语句,您的扩展管理器属性就会消失。

此时有两个选择:

  1. 获取没有经理的用户,然后一次创建 20 个批量请求以获取用户经理(仅 ID)
  2. 放弃尝试提高效率,而只是让所有用户及其经理拥有他们的所有财产。这会让你的请求变得臃肿,但你会得到更少的请求。

我认为,根据您计划获取的数据量(用户数量、您需要的属性),您应该选择最适合您的前进方式。