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


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

Microsoft Graph поддерживает расширенные возможности запросов к различным объектам Microsoft Entra ID, которые также называются объектами каталогов, что помогает эффективно получать доступ к данным. Например, добавление не (not ), не равно (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
  • appRoleAssignmentsTo
  • oAuth2PermissionGrant
  • user
  • memberOf
  • transitiveMemberOf
  • ownedObjects
  • registeredDevices
  • ownedDevices
  • transitiveManagers
  • directReports
  • transitiveReports
  • appRoleAssignments
  • oAuth2PermissionGrant
  • Сценарии запросов, требующие расширенных возможностей запросов

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

    Описание Пример
    Использование $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]"
        }
      ]
    }