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


Приложение Upsert

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Создайте новый объект приложения , если он не существует, или обновите свойства существующего объекта приложения .

Важно!

Использование метода PATCH для настройки passwordCredential не поддерживается. Используйте методы addPassword и removePassword , чтобы обновить пароль или секрет для приложения.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Разрешения

Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.

Тип разрешения Разрешения с наименьшими привилегиями Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись) Application.ReadWrite.All Недоступно.
Делегированные (личная учетная запись Майкрософт) Application.ReadWrite.All Недоступно.
Приложение Application.ReadWrite.OwnedBy Application.ReadWrite.All

HTTP-запрос

Чтобы создать или обновить приложение, укажите альтернативный ключ uniqueName , предоставленный клиентом.

PATCH /applications(uniqueName='{uniqueName}')

Заголовки запросов

Имя Описание
Авторизация Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации.
Content-Type application/json. Обязательный параметр.
Prefer create-if-missing. Требуется для поведения upsert, в противном случае запрос обрабатывается как операция обновления.

Текст запроса

В тексте запроса укажите представление объекта приложения в формате JSON. Текст запроса должен содержать displayName, который является обязательным свойством. Укажите другие доступные для записи свойства, необходимые для приложения, для создания или обновления.

Отклик

Если объект приложения с uniqueName не существует, этот метод возвращает код отклика 201 Created и новый объект приложения в теле отклика. Приложению присваивается значение uniqueName.

Если объект приложения с uniqueName не существует и Prefer: create-if-missing заголовок не указан, этот метод возвращает 404 Not Found код ошибки.

Если объект приложения с uniqueName уже существует, этот метод обновляет объект приложения и возвращает 204 No Content код ответа.

Примеры

Пример 1. Создание приложения, если оно не существует

В следующем примере создается приложение, так как приложение с указанным значением uniqueName не существует.

Запрос

Ниже показан пример запроса.

PATCH https://graph.microsoft.com/beta/applications(uniqueName='app-65278')
Content-Type: application/json
Prefer: create-if-missing

{
  "displayName": "Display name"
}

Отклик

Ниже показан пример отклика.

Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#applications/$entity",
    "id": "03ef14b0-ca33-4840-8f4f-d6e91916010e",
    "deletedDateTime": null,
    "isFallbackPublicClient": null,
    "appId": "631a96bc-a705-4eda-9f99-fdaf9f54f6a2",
    "applicationTemplateId": null,
    "identifierUris": [],
    "createdDateTime": "2019-09-17T19:10:35.2742618Z",
    "displayName": "Display name",
    "isDeviceOnlyAuthSupported": null,
    "groupMembershipClaims": null,
    "optionalClaims": null,
    "addIns": [],
    "publisherDomain": "contoso.onmicrosoft.com",
    "samlMetadataUrl": "https://graph.microsoft.com/2h5hjaj542de/app",
    "signInAudience": "AzureADandPersonalMicrosoftAccount",
    "tags": [],
    "tokenEncryptionKeyId": null,
    "api": {
        "requestedAccessTokenVersion": 2,
        "acceptMappedClaims": null,
        "knownClientApplications": [],
        "oauth2PermissionScopes": [],
        "preAuthorizedApplications": []
    },
    "appRoles": [],
    "publicClient": {
        "redirectUris": []
    },
    "info": {
        "termsOfServiceUrl": null,
        "supportUrl": null,
        "privacyStatementUrl": null,
        "marketingUrl": null,
        "logoUrl": null
    },
    "keyCredentials": [],
    "parentalControlSettings": {
        "countriesBlockedForMinors": [],
        "legalAgeGroupRule": "Allow"
    },
    "passwordCredentials": [],
    "requiredResourceAccess": [],
    "uniqueName": "app-65278",
    "web": {
        "redirectUris": [],
        "homePageUrl": null,
        "logoutUrl": null,
        "implicitGrantSettings": {
            "enableIdTokenIssuance": false,
            "enableAccessTokenIssuance": false
        }
    }, 
    "windows" : null
}

Пример 2. Обновление существующего приложения

В следующем примере приложение обновляется, так как существует приложение с указанным значением uniqueName .

Запрос

Ниже показан пример запроса.

PATCH https://graph.microsoft.com/beta/applications(uniqueName='app-65278')
Content-Type: application/json
Prefer: create-if-missing

{
  "displayName": "Display name"
}

Отклик

Ниже приводится пример отклика.

HTTP/1.1 204 No Content