如何将两个Microsoft Graph API查询合并为单个请求?
合并两个Microsoft Graph API请求的解决方案
你可以通过以下两种官方支持的方式将这两个查询合并为一个Graph API请求:
方法一:批量请求($batch)
这是合并多个独立Graph请求的标准方案,适合需要分别处理两个请求结果的场景。
请求详情
- 请求方法:POST
- 请求地址:
https://graph.microsoft.com/v1.0/$batch - 请求头:
Content-Type: application/jsonConsistencyLevel: eventual(必须添加,因为第二个请求用到了$count和$filter)
- 请求体(JSON):
{ "requests": [ { "id": "1", "method": "GET", "url": "/me" }, { "id": "2", "method": "GET", "url": "/me/memberOf?$count=true&$filter=id in ('xxxxxxxxxxxxxx')" } ] }
响应解析
返回的响应会包含responses数组,每个元素对应请求里的id:
- ID为"1"的结果是当前用户的完整信息
- ID为"2"的结果中,若
value数组长度大于0,说明用户属于指定组;反之则不属于
方法二:扩展查询($expand)
如果只需要判断用户是否属于目标组,同时将结果嵌入用户对象返回,可以用$expand关联并筛选memberOf导航属性。
请求详情
- 请求方法:GET
- 请求地址:
https://graph.microsoft.com/v1.0/me?$expand=memberOf($filter=id in ('xxxxxxxxxxxxxx')) - 请求头:
ConsistencyLevel: eventual(必须添加,否则筛选条件不生效)
响应解析
返回的用户对象里会附带memberOf数组,仅包含匹配指定ID的组:
- 数组长度大于0 → 用户属于该组
- 数组为空 → 用户不属于该组
内容的提问来源于stack exchange,提问作者Alberto B
相关产品推荐
相关产品推荐

