Freigeben über


schemaExtension erstellen

Namespace: microsoft.graph

Erstellen Sie eine neue schemaExtension-Definition und die zugehörige Schemaerweiterungseigenschaft, um einen unterstützenden Ressourcentyp zu erweitern.

Mit Schemaerweiterungen können Sie einer Ressource stark typisierte benutzerdefinierte Daten hinzufügen. Die App, die eine Schemaerweiterung erstellt, ist die Besitzer-App. Je nach Status der Erweiterung kann die Besitzer-App und nur die Besitzer-App die Erweiterung aktualisieren oder löschen.

Erfahren Sie anhand von Beispielen, wie Sie eine Schemaerweiterung definieren, die einen Schulungskurs beschreibt, die Schemaerweiterungsdefinition zum Erstellen einer neuen Gruppe mit Schulungskursdaten verwenden und Schulungskursdaten zu einer vorhandenen Gruppe hinzufügen.

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Globaler Dienst US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) Application.ReadWrite.All Nicht verfügbar.
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Anwendung Application.ReadWrite.All und Directory.ReadWrite.All Nicht verfügbar.

Hinweis

Außerdem muss der angemeldete Benutzer für den delegierten Ablauf der Besitzer der aufrufenden Anwendung ODER der Besitzer der (Anwendung mit der) appId sein, die zum Festlegen der Eigentümereigenschaft verwendet wird.

HTTP-Anforderung

POST /schemaExtensions

Anforderungsheader

Name Beschreibung
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung.
Content-Type application/json

Anforderungstext

Geben Sie im Anforderungstext eine JSON-Darstellung eines schemaExtension-Objekts an.

In der folgenden Tabelle sind die Eigenschaften dargestellt, die zum Erstellen einer Schemaerweiterung erforderlich sind.

Parameter Typ Beschreibung
description String Beschreibung für die Schemaerweiterung.
id String Der eindeutige Bezeichner für die Schemaerweiterungsdefinition.
Sie können einen Wert mit einer von zwei Methoden zuweisen:
  • Verketten Sie den Namen einer Ihrer überprüften Domänen mit einem Namen für die Schemaerweiterung, um eine eindeutige Zeichenfolge in diesem Format zu bilden, {domainName}_{schemaName}. Beispiel: contoso_mySchema. HINWEIS: Nur überprüfte Domänen unter den folgenden Domänen auf oberster Eben werden unterstützt: .com,.net, .gov, .edu oder .org.
  • Geben Sie einen Schemanamen an, und lassen Sie Microsoft Graph diesen Schemanamen verwenden, um die ID-Zuweisung im folgenden Format abzuschließen: ext{8-random-alphanumeric-chars}_{schema-name}. Ein Beispiel wäre extkvbmkofy_mySchema.
Diese Eigenschaft kann nach dem Erstellen nicht mehr geändert werden.
owner Zeichenfolge (Optional) Die appId der Anwendung, die der Besitzer der Schemaerweiterung ist. Die appId der aufrufenden Anwendung wird standardmäßig als Besitzer festgelegt. Allerdings kann die Eigenschaft bei der Erstellung bereitgestellt werden, um die Besitzer-App-ID auf einen anderen Wert als die aufrufende App festzulegen. In allen Fällen muss im Delegiertenablauf der angemeldete Benutzer der Besitzer der Anwendung sein, die als Besitzer der Schemaerweiterung festgelegt wird. Wenn Sie z. B. eine neue Definition für eine Schemaerweiterung mit dem Graph-Tester erstellen, müssen Sie die Besitzereigenschaft für eine App-ID angeben, die Sie besitzen. Wurde diese Eigenschaft einmal festgelegt, ist sie schreibgeschützt und kann nicht geändert werden.
properties extensionSchemaProperty-Sammlung Die Sammlung von Eigenschaftennamen und Typen, die die Schemaerweiterungsdefinition bilden.
targetTypes String-Sammlung Ein Satz von Microsoft Graph-Ressourcentypen (die Erweiterungen unterstützen), auf die diese Schemaerweiterungsdefinition angewendet werden kann.

Antwort

Wenn die Methode erfolgreich verläuft, werden der Antwortcode 201 Created und ein schemaExtension-Objekt im Antworttext zurückgegeben.

Beispiel

Beispiel 1: Erstellen einer Schemaerweiterung unter Verwendung einer überprüften Domäne

Anforderung

In diesem Beispiel wird veranschaulicht, wie aus einem überprüften Domänennamen, graphlearn, und einem Schemanamen, courses, eine eindeutige Zeichenfolge für die id-Eigenschaft der Schemaerweiterungsdefinition gebildet wird. Die eindeutige Zeichenfolge basiert auf diesem Format, {domainName}_{schemaName}.

POST https://graph.microsoft.com/v1.0/schemaExtensions
Content-type: application/json

{
    "id":"graphlearn_courses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "Group"
    ],
    "properties": [
        {
            "name": "courseId",
            "type": "Integer"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
    "id": "graphlearn_courses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "Group"
    ],
    "status": "InDevelopment",
    "owner": "24d3b144-21ae-4080-943f-7067b395b913",
    "properties": [
        {
            "name": "courseId",
            "type": "String"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}

Beispiel 2: Erstellen einer Schemaerweiterung nur mit einem Namen

Anforderung

Das folgende Beispiel zeigt die Angabe eines Schemanamens ( courses) in der id-Eigenschaft in der Anforderung zusammen mit der JSON-Darstellung der restlichen Eigenschaften im schemaExtension-Objekt . Microsoft Graph weist einen eindeutigen Zeichenfolgenwert zu und gibt ihn in der Antwort zurück.

POST https://graph.microsoft.com/v1.0/schemaExtensions
Content-type: application/json

{
    "id":"courses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "Group"
    ],
    "properties": [
        {
            "name": "courseId",
            "type": "Integer"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}

Antwort

Die Antwort enthält eine eindeutige Zeichenfolge in der id-Eigenschaft, die auf dem in der Anforderung angegebenen Schemanamen zusammen mit dem Rest der neu erstellten Schemadefinition basiert. Der Wert in id in der Antwort basiert auf dem Format ext{8-random-alphanumeric-chars}_{schema-name}.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
    "id": "extk9eruy7c_courses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "Group"
    ],
    "status": "InDevelopment",
    "owner": "24d3b144-21ae-4080-943f-7067b395b913",
    "properties": [
        {
            "name": "courseId",
            "type": "String"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}

Beispiel 3: Erstellen einer Schemaerweiterung durch Festlegen des Besitzers

Anforderung

Das folgende Beispiel zeigt, wie eine Schemaerweiterung erstellt wird, die den Besitzer festlegt. In diesem Szenario ist der Benutzer der Anwendung möglicherweise nicht deren Besitzer (z. B. wenn Sie Microsoft Graph Explorer verwenden). In diesem Fall sollten Sie die owner-Eigenschaft auf die appId einer Anwendung festlegen, die Sie besitzen. Andernfalls sind Sie nicht zum Erstellen einer Schemaerweiterung berechtigt. Legen Sie die owner-Eigenschaft in der Anforderung fest, zusammen mit der JSON-Darstellung der restlichen Eigenschaften im schemaExtension-Objekt.

POST https://graph.microsoft.com/v1.0/schemaExtensions
Content-type: application/json

{
    "id":"courses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "Group"
    ],
    "owner": "50897f70-a455-4adf-87bc-4cf17091d5ac",
    "properties": [
        {
            "name": "courseId",
            "type": "Integer"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}

Antwort

Die Antwort enthält den Besitzer, der auf den Wert festgelegt ist, der in der Anforderung bereitgestellt wurde.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

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

{
    "id": "extk9eruy7c_courses",
    "description": "Graph Learn training courses extensions",
    "targetTypes": [
        "Group"
    ],
    "status": "InDevelopment",
    "owner": "50897f70-a455-4adf-87bc-4cf17091d5ac",
    "properties": [
        {
            "name": "courseId",
            "type": "String"
        },
        {
            "name": "courseName",
            "type": "String"
        },
        {
            "name": "courseType",
            "type": "String"
        }
    ]
}