Как выбрать поля в расширенном поле с помощью Microsoft Graph Client для JavaScript - PullRequest
1 голос
/ 31 октября 2019

В соответствии с Microsoft Graph Client для JavaScript документация , клиент поддерживает параметр запроса $expand и работает нормально.

Поскольку Microsoft Graph API поддерживает выбор внутри расширенного поля, когдаиспользуя ($expand=attachments($select=name,size)), как мне это сделать с помощью JavaScript SDK / Client?

Я пробовал что-то подобное, но он возвращает множество атрибутов для расширенного менеджера (что я пытаюсьизбегать):

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

1 Ответ

1 голос
/ 31 октября 2019

Ваш синтаксис правильный, но я боюсь, что это не поддерживается самим API. Хотя ресурсы AAD поддерживают $expand, существуют некоторые серьезные ограничения:

  1. Поддерживается только в бета-версии. Что касается того, почему он ограничен бета-версией, то можно с уверенностью сказать, что это связано со следующим пунктом.

  2. Вы не можете использовать оба $expand и $select в одном запросе,Другими словами, /me?$expand=manager($select=displayName) не только потерпит неудачу, но и /me?$select=id,displayName&$expand=manager($select=displayName) или /me?$select=id,displayName&$expand=manager.

Учитывая значение данных, которые в конечном итоге возвращаются и ограничиваются бета-версией, $expand эффективно отсылается к горстке сценариев с крайними случаями, когда дело доходит до DirectoryObject.

Я бы порекомендовал не расширять Менеджер в пользу установки размера вашей страницы равным 20 и создания пакетного запроса для каждой страницы данных, которую должен потянуть менеджер. Это позволяет значительно сократить объем данных по сети, сократить количество исходящих вызовов до двух на страницу и полностью выполнить в версии v1.0.

Для получения дополнительной информации о том, как составляются пакетные запросы, см. Пакетирование в документации SDK.

...