schemaExtension erstellen

Namespace: microsoft.graph

Erstellen Sie eine neue schemaExtension-Definition, um einen unterstützenden Ressourcentyp zu erweitern.

Mit Schemaerweiterungen können Sie stark typisierte benutzerdefinierte Daten zu einer Ressource hinzufügen. Die App, die eine Schemaerweiterung erstellt, ist die Besitzer-App. Abhängig vom 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.

Berechtigungen

Eine der nachfolgenden Berechtigungen ist erforderlich, um diese API aufrufen zu können. Weitere Informationen, unter anderem zur Auswahl von Berechtigungen, finden Sie im Artikel zum Thema Berechtigungen.

Berechtigungstyp Berechtigungen (von der Berechtigung mit den wenigsten Rechten zu der mit den meisten Rechten)
Delegiert (Geschäfts-, Schul- oder Unikonto) Application.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt
Anwendung Application.ReadWrite.All und Directory.ReadWrite.All

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.
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 verwenden Sie diesen Schemanamen in Microsoft Graph zum Vervollständigen der id-Zuweisung in diesem Format: ext{8-random-alphanumeric-chars}_{schema-name}. Zum Beispiel: 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

Nachfolgend sehen Sie ein Beispiel der 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 lediglich eines Schemanames, courses, in der id-Eigenschaft in der Anforderung angegeben, zusammen mit der JSON-Darstellung der restlichen Eigenschaften im schemaExtension-Objekt. Microsoft Graph wird einen eindeutigen Zeichenfolgenwert zuweisen und ihn in der Antwort zurückgeben.

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 basiert, zusammen mit dem Rest der neu erstellten Schemadefinition. 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"
        }
    ]
}

Siehe auch