Поделиться через


Расширенные возможности запросов к объектам Microsoft Entra ID

Microsoft Graph поддерживает расширенные возможности запросов к различным объектам Microsoft Entra ID, которые также называются объектами каталогов, что помогает эффективно получать доступ к данным. Примеры включают добавление операторов not (not), not equals (ne) и заканчивается на (endsWith) в параметре $filter запроса.

Механизм запросов Microsoft Graph использует хранилище индексов для выполнения запросов. Чтобы добавить поддержку дополнительных возможностей запросов для некоторых свойств, эти свойства можно индексировать в отдельном хранилище. Это отдельное индексирование повышает производительность запросов. Однако эти расширенные возможности запросов недоступны по умолчанию, инициатор запроса должен задать для заголовка ConsistencyLevel значение eventualи, за исключением $search, использовать $count параметр запроса. Заголовок ConsistencyLevel и $count называются расширенными параметрами запроса.

Например, чтобы получить только неактивные учетные записи пользователей, можно выполнить любой из следующих запросов, использующих $filter параметр запроса:

Вариант 1.$filter Используйте параметр запроса с оператором eq . Этот запрос работает по умолчанию и не требует дополнительных параметров запроса.

GET https://graph.microsoft.com/v1.0/users?$filter=accountEnabled eq false

Вариант 2.$filter Используйте параметр запроса с оператором ne . Этот запрос не поддерживается по умолчанию, так как ne оператор поддерживается только в расширенных запросах. Поэтому необходимо добавить заголовок eventualConsistencyLevel в значение и использовать $count=true строку запроса.

GET https://graph.microsoft.com/v1.0/users?$filter=accountEnabled ne true&$count=true
ConsistencyLevel: eventual

Microsoft Entra ID объектов (каталогов), поддерживающих расширенные возможности запросов

Расширенные возможности запросов поддерживаются только для объектов каталога и их связей, включая следующие объекты:

Объект Связи
administrativeUnit
  • члены
  • application
  • владельцы
  • appRoleAssignment -
    device
  • memberOf
  • transitiveMemberOf
  • registeredUsers
  • registeredOwners
  • group
  • члены
  • transitiveMembers
  • memberOf
  • transitiveMemberOf
  • владельцы
  • appRoleAssignments
  • oAuth2PermissionGrant (предоставление делегированных разрешений) -
    orgContact
  • memberOf
  • transitiveMemberOf
  • servicePrincipal
  • memberOf
  • владельцы
  • transitiveMemberOf
  • appRoleAssignments
  • appRoleAssignedTo
  • oAuth2PermissionGrant
  • user
  • memberOf
  • transitiveMemberOf
  • ownedObjects
  • registeredDevices
  • ownedDevices
  • transitiveManagers
  • directReports
  • transitiveReports
  • appRoleAssignments
  • oAuth2PermissionGrant
  • Примечание.

    Использование в отношениях предыдущего списка объектов каталога поддерживается только с расширенными параметрами $filter запроса. Однако в таких случаях не используйте $expand в одном и том же запросе, так как он не поддерживается с расширенными параметрами запроса.

    Сценарии запросов, требующие расширенных возможностей запросов

    В следующей таблице приведены сценарии запросов для объектов каталога, поддерживаемые только в расширенных запросах:

    Описание Пример
    Использование $count в качестве сегмента URL-адреса GET~/groups/$count
    Использование $count в качестве параметра строки запроса GET~/servicePrincipals?$count=true
    Использование $count в $filter выражении GET~/users?$filter=assignedLicenses/$count eq 0&$count=true
    Использование $search GET~/applications?$search="displayName:Browser"
    Использование $orderby для выбранных свойств GET~/applications?$orderby=displayName&$count=true
    Использование $filter с оператором endsWith GET~/users?$count=true&$filter=endsWith(mail,'@outlook.com')
    Использование $filter и $orderby в одном и том же запросе GET../applications?$orderby=displayName&$filter=startsWith(displayName, 'Box')&$count=true
    Использование $filter с операторами startsWith для определенных свойств GET~/users?$filter=startsWith(mobilePhone, '25478') OR startsWith(mobilePhone, '25473')&$count=true
    Использование $filter с операторами ne и not GET~/users?$filter=companyName ne null and NOT(companyName eq 'Microsoft')&$count=true
    Использование $filter с операторами not и startsWith GET~/users?$filter=NOT startsWith(displayName, 'Conf')&$count=true
    Использование $filter в коллекции с оператором endsWith GET~/users?$count=true&$filter=proxyAddresses/any (p:endsWith(p, 'contoso.com'))&$select=id,displayName,proxyaddresses
    Использование трансляции OData с транзитивным списком участников GET~/me/transitiveMemberOf/microsoft.graph.group?$count=true

    Примечание.

    • Совместное использование $filter и $orderby поддерживается только в расширенных запросах.
    • $expand в настоящее время не поддерживается в расширенных запросах.
    • Расширенные возможности запросов в настоящее время недоступны для клиентов Azure AD B2C.
    • Чтобы использовать расширенные возможности запросов в пакетных запросах, укажите заголовок ConsistencyLevel в теле запроса JSON POST.

    Поддержка фильтрации по свойствам объектов Microsoft Entra ID (каталогов)

    Свойства объектов каталога ведут себя по-разному в отношении поддержки параметров запросов. Ниже приведены распространенные сценарии для объектов каталога:

    • Оператор in поддерживается по умолчанию, когда eq оператор поддерживается по умолчанию.
    • Оператор endswith поддерживается только с расширенными параметрами запроса и только свойствами mail, otherMails, userPrincipalName и proxyAddresses .
    • Получение пустых коллекций (/$count eq 0, /$count ne 0) и коллекций с менее чем одним объектом (/$count eq 1, /$count ne 1) поддерживается только с расширенными параметрами запроса.
    • Операторы not и ne отрицания поддерживаются только с расширенными параметрами запроса.

    В следующих таблицах представлена поддержка $filter операторов по свойствам объектов каталога и указывается, где запросы поддерживаются с помощью расширенных возможностей запросов.

    Условные обозначения

    • Фильтр работает по умолчанию. Не требует дополнительных параметров запроса, но по-прежнему работает с расширенными параметрами запроса. Оператор $filter работает по умолчанию для этого свойства.
    • Фильтр работает только без дополнительных параметров запроса. Оператор $filter работает только без дополнительных параметров запроса.
    • Для фильтра требуются дополнительные параметры запроса. Оператор $filterтребуетдополнительных параметров запроса, которые:
      • Заголовок ConsistencyLevel=eventual
      • Строка запроса $count=true
    • Не поддерживается. Оператор $filter не поддерживается для этого свойства. Отправьте свой отзыв, чтобы запросить поддержку этого свойства $filter для сценариев.
    • Пустые ячейки указывают, что запрос недопустим для этого свойства.
    • Столбец значение null указывает, что свойство является недействительным и фильтруемым с помощью null.
    • Свойства, которые не перечислены здесь, не поддерживаются $filter вообще.

    Свойства административных единиц

    Свойство eq startsWith eq NULL
    description Расширенные Расширенные Расширенные
    displayName Default+Advanced Default+Advanced Расширенные
    isMemberManagementRestricted Default+Advanced
    membershipRule Default+Advanced Default+Advanced
    membershipRuleProcessingState Default+Advanced

    Свойства приложения

    Свойство eq startsWith ge/le eq NULL
    appId Default+Advanced
    createdDateTime Default+Advanced Расширенные
    description Расширенные Расширенные Расширенные
    disabledByMicrosoftStatus Default+Advanced
    displayName Default+Advanced Default+Advanced Расширенные
    federatedIdentityCredentials/any(f:f/issuer) Расширенные Расширенные
    federatedIdentityCredentials/any(f:f/name) Расширенные Расширенные
    federatedIdentityCredentials/any(f:f/subject) Расширенные Расширенные
    identifierUris/any(p:p) Default+Advanced Default+Advanced
    info/logoUrl Расширенные
    info/termsOfServiceUrl Расширенные Расширенные
    notes Расширенные Расширенные Расширенные
    publicClient/redirectUris/any(p:p) Расширенные Расширенные
    publisherDomain Default+Advanced Default+Advanced
    requiredResourceAccess/any(r:r/resourceAppId) Расширенные
    serviceManagementReference Расширенные Расширенные Расширенные
    signInAudience Default+Advanced
    spa/redirectUris/any(p:p) Расширенные Расширенные
    tags/any(p:p) Default+Advanced Default+Advanced
    uniqueName Default+Advanced Default+Advanced
    verifiedPublisher/displayName Расширенные Расширенные Расширенные
    web/homePageUrl Расширенные Расширенные Расширенные
    web/redirectUris/any(p:p) Расширенные Расширенные

    Следующие свойства сущности приложения поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    extensionProperties/$count Расширенные NotSupported
    federatedIdentityCredentials/$count Расширенные NotSupported

    Свойства контракта

    Свойство eq startsWith
    customerId Default+Advanced
    defaultDomainName Default+Advanced Default+Advanced
    displayName Default+Advanced Default+Advanced

    Свойства устройства

    Свойство eq startsWith ge/le eq NULL
    accountEnabled Default+Advanced
    alternativeSecurityIds/any(a:a/identityProvider) Расширенные Расширенные
    alternativeSecurityIds/any(a:a/type) Default+Advanced
    approximateLastSignInDateTime Default+Advanced Расширенные
    deviceCategory Расширенные Расширенные Расширенные
    deviceId Default+Advanced
    deviceOwnership Расширенные Расширенные
    displayName Default+Advanced Default+Advanced Расширенные
    enrollmentProfileName Расширенные Расширенные Расширенные
    extensionAttributes/extensionAttribute1-15 Расширенные Расширенные Расширенные
    hostnames/any(p:p) Default+Advanced Default+Advanced
    isCompliant Default+Advanced
    isManaged Default+Advanced
    isRooted Расширенные Расширенные
    managementType Расширенные Расширенные
    manufacturer Расширенные Расширенные Расширенные
    mdmAppId Default+Advanced Расширенные
    model Расширенные Расширенные Расширенные
    onPremisesLastSyncDateTime Default+Advanced
    onPremisesSecurityIdentifier Default+Advanced Расширенные
    onPremisesSyncEnabled Default+Advanced Расширенные
    operatingSystem Default+Advanced Default+Advanced Расширенные
    operatingSystemVersion Default+Advanced Default+Advanced Расширенные
    physicalIds/any(p:p) Default+Advanced
    profileType Default+Advanced
    registrationDateTime Расширенные Расширенные
    trustType Default+Advanced

    Следующие свойства сущности устройства поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    physicalIds/$count Расширенные NotSupported
    systemLabels/$count Расширенные NotSupported

    Свойства роли каталога

    Свойство eq startsWith eq NULL
    description Расширенные Расширенные Расширенные
    displayName Default+Advanced Расширенные Расширенные
    roleTemplateId Default+Advanced NotSupported

    Свойства группы

    Свойство eq startsWith ge/le eq NULL
    assignedLicenses/any(a:a/skuId) Default+Advanced
    classification Default+Advanced Default+Advanced
    createdByAppId Default+Advanced
    createdDateTime Расширенные Расширенные
    description Расширенные Расширенные Расширенные
    displayName Default+Advanced Default+Advanced Расширенные
    expirationDateTime Расширенные
    groupTypes/any(p:p) Default+Advanced
    hasMembersWithLicenseErrors DefaultOnly DefaultOnly
    infoCatalogs/any(p:p) Default+Advanced Default+Advanced
    isAssignableToRole Default+Advanced
    mail; Default+Advanced Default+Advanced Расширенные
    mailEnabled Default+Advanced
    mailNickname Default+Advanced Default+Advanced Расширенные
    membershipRule Default+Advanced Default+Advanced
    membershipRuleProcessingState Default+Advanced
    onPremisesLastSyncDateTime Default+Advanced
    onPremisesProvisioningErrors/any(o:o/category) Default+Advanced
    onPremisesProvisioningErrors/any(o:o/propertyCausingError) Default+Advanced
    onPremisesSamAccountName Расширенные Расширенные
    onPremisesSecurityIdentifier Default+Advanced Расширенные
    onPremisesSyncEnabled Default+Advanced Расширенные
    preferredLanguage; Расширенные Расширенные
    proxyAddresses/any(p:p) Default+Advanced Default+Advanced
    renewedDateTime Default+Advanced
    resourceBehaviorOptions/any(p:p) Default+Advanced
    resourceProvisioningOptions/any(p:p) Default+Advanced
    securityEnabled Default+Advanced
    uniqueName Default+Advanced Default+Advanced

    Следующие свойства сущности группы поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    assignedLicenses/$count Расширенные NotSupported
    onPremisesProvisioningErrors/$count Расширенные NotSupported
    proxyAddresses/$count Расширенные NotSupported

    Свойства контактов организации

    Свойство eq startsWith ge/le eq NULL
    CompanyName Расширенные Расширенные Расширенные
    department Default+Advanced Default+Advanced Расширенные
    displayName Default+Advanced Default+Advanced Расширенные
    givenName; Default+Advanced Default+Advanced Расширенные
    jobTitle; Default+Advanced Default+Advanced Расширенные
    mail; Default+Advanced Default+Advanced Расширенные
    mailNickname Default+Advanced Default+Advanced Расширенные
    manager/id Default+Advanced
    onPremisesLastSyncDateTime Default+Advanced
    onPremisesProvisioningErrors/any(o:o/category) Default+Advanced
    onPremisesProvisioningErrors/any(o:o/propertyCausingError) Default+Advanced
    onPremisesSyncEnabled Default+Advanced Расширенные
    proxyAddresses/any(p:p) Default+Advanced Default+Advanced
    surname; Default+Advanced Default+Advanced Расширенные

    Следующие свойства сущности orgContact поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    onPremisesProvisioningErrors/$count Расширенные NotSupported
    proxyAddresses/$count Расширенные NotSupported

    Свойства субъекта-службы

    Свойство eq startsWith ge/le eq NULL
    accountEnabled Default+Advanced
    alternativeNames/any(p:p) Default+Advanced Default+Advanced
    appId Default+Advanced
    appOwnerOrganizationId Расширенные
    appRoleAssignmentRequired Расширенные
    applicationTemplateId Default+Advanced
    claimsPolicy/id Default+Advanced
    createdObjects/any(c:c/id) Расширенные
    description Расширенные Расширенные Расширенные
    displayName Default+Advanced Default+Advanced Расширенные
    federatedIdentityCredentials/any(f:f/issuer) Расширенные Расширенные
    federatedIdentityCredentials/any(f:f/name) Расширенные Расширенные
    federatedIdentityCredentials/any(f:f/subject) Расширенные Расширенные
    homepage Расширенные Расширенные Расширенные
    info/logoUrl Расширенные
    info/termsOfServiceUrl Расширенные Расширенные
    notes Расширенные Расширенные Расширенные
    preferredSingleSignOnMode Default+Advanced
    preferredTokenSigningKeyEndDateTime Default+Advanced
    publisherName Default+Advanced Default+Advanced
    remoteDesktopSecurityConfiguration/id Default+Advanced
    servicePrincipalNames/any(p:p) Default+Advanced Default+Advanced
    servicePrincipalType Default+Advanced
    tags/any(p:p) Default+Advanced Default+Advanced
    verifiedPublisher/displayName Расширенные Расширенные Расширенные

    Следующие свойства сущности servicePrincipal поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    federatedIdentityCredentials/$count Расширенные NotSupported

    Свойства пользователя

    Свойство eq startsWith ge/le eq NULL
    accountEnabled Default+Advanced
    ageGroup Default+Advanced
    assignedLicenses/any(a:a/skuId) Default+Advanced
    assignedPlans/any(a:a/capabilityStatus) Расширенные
    assignedPlans/any(a:a/service) Расширенные Расширенные
    assignedPlans/any(a:a/servicePlanId) Расширенные
    authorizationInfo/certificateUserIds/any(p:p) Расширенные
    businessPhones/any(p:p) Расширенные Расширенные
    city Default+Advanced Default+Advanced Расширенные
    cloudRealtimeCommunicationInfo/isSipEnabled Default+Advanced
    CompanyName Расширенные Расширенные Расширенные
    consentProvidedForMinor Default+Advanced
    country Default+Advanced Default+Advanced Расширенные
    createdDateTime Default+Advanced Расширенные
    createdObjects/any(c:c/id) Расширенные
    creationType Default+Advanced
    department Default+Advanced Default+Advanced Расширенные
    displayName Default+Advanced Default+Advanced Расширенные
    employeeHireDate Расширенные
    employeeId Default+Advanced Расширенные
    employeeOrgData/costCenter Расширенные Расширенные
    employeeOrgData/division Расширенные Расширенные
    employeeType Расширенные
    externalUserState Default+Advanced
    faxNumber Расширенные Расширенные Расширенные
    givenName; Default+Advanced Default+Advanced Расширенные
    identities/any(i:i/issuer) DefaultOnly DefaultOnly
    imAddresses/any(p:p) Default+Advanced Default+Advanced
    infoCatalogs/any(p:p) Default+Advanced Default+Advanced
    isLicenseReconciliationNeeded DefaultOnly
    isResourceAccount Default+Advanced
    jobTitle; Default+Advanced Default+Advanced Расширенные
    mail; Default+Advanced Default+Advanced Расширенные
    mailNickname Default+Advanced Default+Advanced Расширенные
    mobilePhone; Расширенные Расширенные Расширенные
    officeLocation; Расширенные Расширенные Расширенные
    onPremisesDistinguishedName Расширенные Расширенные Расширенные
    onPremisesExtensionAttributes/extensionAttribute1-15 Расширенные Расширенные Расширенные
    onPremisesImmutableId Default+Advanced
    onPremisesLastSyncDateTime Default+Advanced
    onPremisesProvisioningErrors/any(o:o/category) Default+Advanced
    onPremisesProvisioningErrors/any(o:o/propertyCausingError) Default+Advanced
    onPremisesSamAccountName Расширенные Расширенные
    onPremisesSecurityIdentifier Default+Advanced Расширенные
    onPremisesSipInfo/isSipEnabled Расширенные
    onPremisesSyncEnabled Default+Advanced Расширенные
    otherMails/any(p:p) Default+Advanced Default+Advanced
    passwordPolicies Расширенные
    passwordProfile/forceChangePasswordNextSignIn Расширенные Расширенные
    passwordProfile/forceChangePasswordNextSignInWithMfa Расширенные Расширенные
    postalCode Расширенные Расширенные Расширенные
    preferredLanguage; Расширенные Расширенные
    provisionedPlans/any(p:p/provisioningStatus) Расширенные
    provisionedPlans/any(p:p/service) Расширенные Расширенные
    proxyAddresses/any(p:p) Default+Advanced Default+Advanced
    state Default+Advanced Расширенные
    streetAddress Расширенные Расширенные Расширенные
    surname; Default+Advanced Default+Advanced Расширенные
    usageLocation Default+Advanced Default+Advanced Расширенные
    userPrincipalName. Default+Advanced Default+Advanced
    userType Default+Advanced Расширенные

    Следующие свойства сущности пользователя поддерживают $count коллекцию в выражении фильтра.

    Property eq Count 0 eq Count 1
    assignedLicenses/$count Расширенные NotSupported
    onPremisesProvisioningErrors/$count Расширенные NotSupported
    otherMails/$count Расширенные NotSupported
    ownedObjects/$count Расширенные Расширенные
    proxyAddresses/$count Расширенные NotSupported

    В следующей таблице показана $filter поддержка другими свойствами расширения объекта user .

    Тип расширения eq startsWith eq NULL
    Расширения схемы Расширенные Расширенные Расширенные
    Открытые расширения NotSupported NotSupported NotSupported
    Расширения каталогов Default+Advanced Расширенные Расширенные

    Поддержка сортировки по свойствам объектов Microsoft Entra ID (каталог)

    В следующей таблице представлена поддержка $orderby по свойствам объектов каталога и указано, где сортировка поддерживается с помощью расширенных возможностей запросов.

    Условные обозначения

    • Сортировка работает по умолчанию. Не требует дополнительных параметров запроса. Оператор $orderby работает по умолчанию для этого свойства.
    • Для сортировки требуются дополнительные параметры запроса. Оператор $orderbyтребуетдополнительных параметров запроса, которые:
      • Заголовок ConsistencyLevel=eventual
      • Строка запроса $count=true
    • $filter Для использования и $orderby в одном запросе для объектов каталога всегда требуются дополнительные параметры запроса. Дополнительные сведения см. в статье Сценарии запросов, требующие расширенных возможностей запросов.
    Объект каталога Имя свойства $orderby
    administrativeUnit createdDateTime Расширенные
    administrativeUnit deletedDateTime Расширенные
    administrativeUnit displayName Расширенные
    приложение createdDateTime Расширенные
    приложение deletedDateTime Расширенные
    приложение displayName Расширенные
    orgContact createdDateTime Расширенные
    orgContact displayName Расширенные
    device; approximateLastSignInDateTime Расширенные
    device; createdDateTime Расширенные
    device; deletedDateTime Расширенные
    device; displayName Расширенные
    group createdDateTime Расширенные
    group deletedDateTime Расширенные
    group displayName По умолчанию
    servicePrincipal createdDateTime Расширенные
    servicePrincipal deletedDateTime Расширенные
    servicePrincipal displayName Расширенные
    пользователь createdDateTime Расширенные
    пользователь deletedDateTime Расширенные
    пользователь displayName По умолчанию
    пользователь userPrincipalName. По умолчанию
    [все остальные] [все остальные] NotSupported

    Обработка ошибок расширенных запросов к объектам каталога

    В следующем разделе приведены примеры распространенных сценариев ошибок, когда при необходимости не используются дополнительные параметры запроса.

    Подсчет объектов каталога поддерживается только с использованием расширенных параметров запросов. ConsistencyLevel=eventual Если заголовок не указан, запрос возвращает ошибку при $count использовании сегмента URL-адреса (/$count) или автоматически игнорирует $count параметр запроса (?$count=true), если он используется.

    GET https://graph.microsoft.com/v1.0/users/$count
    
    {
        "error": {
            "code": "Request_BadRequest",
            "message": "$count is not currently supported.",
            "innerError": {
                "date": "2021-05-18T19:03:10",
                "request-id": "d9bbd4d8-bb2d-44e6-99a1-71a9516da744",
                "client-request-id": "539da3bd-942f-25db-636b-27f6f6e8eae4"
            }
        }
    }
    

    Для объектов каталога $search поддерживается только в расширенных запросах. Если заголовок ConsistencyLevel не указан, запрос возвращает ошибку.

    GET https://graph.microsoft.com/v1.0/applications?$search="displayName:Browser"
    
    {
        "error": {
            "code": "Request_UnsupportedQuery",
            "message": "Request with $search query parameter only works through MSGraph with a special request header: 'ConsistencyLevel: eventual'",
            "innerError": {
                "date": "2021-05-27T14:26:47",
                "request-id": "9b600954-ba11-4899-8ce9-6abad341f299",
                "client-request-id": "7964ef27-13a3-6ca4-ed7b-73c271110867"
            }
        }
    }
    

    Если свойство или параметр запроса в URL-адресе поддерживаются только в расширенных запросах, но отсутствует заголовок ConsistencyLevel или строка запроса $count=true, то запрос возвращает ошибку.

    GET https://graph.microsoft.com/beta/users?$filter=endsWith(userPrincipalName,'%23EXT%[email protected]')
    
    {
        "error": {
            "code": "Request_UnsupportedQuery",
            "message": "Operator 'endsWith' is not supported because the required parameters might be missing. Try adding $count=true query parameter and ConsistencyLevel:eventual header. Refer to https://aka.ms/graph-docs/advanced-queries for more information",
            "innerError": {
                "date": "2023-07-14T08:43:39",
                "request-id": "b3731da7-5c46-4c37-a8e5-b190124d2531",
                "client-request-id": "a1556ddf-4794-929d-0105-b753a78b4c68"
            }
        }
    }
    

    Если свойство не индексируется для поддержки параметра запроса, запрос возвращает ошибку, даже если указаны дополнительные параметры запроса. Например, свойство createdDateTime ресурса группы не индексируется для возможностей запросов.

    GET https://graph.microsoft.com/beta/groups?$filter=createdDateTime ge 2021-11-01&$count=true
    ConsistencyLevel: eventual
    
    {
        "error": {
            "code": "Request_UnsupportedQuery",
            "message": "Unsupported or invalid query filter clause specified for property 'createdDateTime' of resource 'Group'.",
            "innerError": {
                "date": "2023-07-14T08:42:44",
                "request-id": "b6a5f998-94c8-430d-846d-2eaae3031492",
                "client-request-id": "2be83e05-649e-2508-bcd9-62e666168fc8"
            }
        }
    }
    

    Однако запрос, включающий параметры запроса, может завершиться ошибкой автоматически. Например, для неподдерживаемых параметров запроса и для неподдерживаемых сочетаний параметров запроса. В таких случаях проверьте данные, возвращаемые запросом, чтобы определить, оказали ли указанные параметры запроса желаемое действие. В следующем примере параметр @odata.count отсутствует, даже если запрос успешно выполняется.

    GET https://graph.microsoft.com/v1.0/users?$count=true
    
    HTTP/1.1 200 OK
    Content-type: application/json
    
    {
      "@odata.context":"https://graph.microsoft.com/v1.0/$metadata#users",
      "value":[
        {
          "displayName":"Oscar Ward",
          "mail":"[email protected]",
          "userPrincipalName":"[email protected]"
        }
      ]
    }