Microsoft Graph не может выбрать в развернутом операторе для / groups - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу получить доступ ко всем членам всех групп через Microsoft Graph.Я хочу собрать это в один вызов, а не выполнять итерации по каждой группе.

Я хочу выбрать только подмножество информации для расширенных членов.

Я не могу найти способсделать это, но я считаю, что это поддерживается.Как правильно выбрать расширение:

Насколько я могу судить, это должно работать, чтобы дать мне то, что я хочу, однако результат возвращается без свойства members:

https://graph.microsoft.com/v1.0/groups?$expand=members($select=id,userPrincipalName)

Это, однако, возвращает всех участников, но предоставляет way больше информации, чем я ищу:

 https://graph.microsoft.com/v1.0/groups?$expand=members

Я пробовал это в двух местах:

  1. Microsoft Graph API Explorer (конкретные примеры приведены выше).

  2. В моем коде в реальной среде.Я опущу здесь код, так как результаты из кода такие же, как и в Graph Explorer.

edit: Хотя я принял ответ Марка, поскольку он помогает решить эту проблему здесь,для других, я хочу отметить, что следующее все равно возвратит группы и участников в одном (хотя и большом) ответе:

 https://graph.microsoft.com/v1.0/groups?$expand=members

1 Ответ

0 голосов
/ 07 февраля 2019

Хотя ваш запрос правильно отформатирован с точки зрения OData, Groups не реализует этот шаблон.Вам нужно будет запросить членство для каждой группы отдельно.

Что вы можете сделать - это уменьшить количество вызовов с помощью JSON Batching .Вы можете сделать до 20 звонков одновременно.Самый простой способ сделать это - установить размер страницы в 20 записей, например:

https://graph.microsoft.com/v1.0/groups?$select=id&$top=20

Для каждой страницы вы затем отправляете пакетный запрос для групп на этой странице:

POST https://graph.microsoft.com/v1.0/$batch
{
  "requests": [
    {
      "id": "1",
      "method": "GET",
      "url": "/groups/{group-id}/members"
    },
    {
      "id": "2",
      "method": "GET",
      "url": "/groups/{group-id}/members"
    },
    //...
    {
      "id": "20",
      "method": "GET",
      "url": "/groups/{group-id}/members"
    } 
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...