Freigeben über


schemaExtension erstellen

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

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.

Weltweiter Service US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie die Berechtigungen aus, die für diese API als am wenigsten privilegiert markiert sind. Verwenden Sie eine höhere Berechtigung oder Berechtigungen nur, wenn Ihre App dies erfordert. 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 Authentifizierung und Autorisierung.
Content-Type application/json

Anforderungstext

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

Die folgende Tabelle zeigt die Eigenschaften, die verfügbar sind, wenn Sie eine Schemaerweiterung erstellen.

Parameter Typ Beschreibung
description Zeichenfolge Optional. Beschreibung für die Schemaerweiterung.
id Zeichenfolge Erforderlich. 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 Konditional. Die appId der Anwendung, die der Besitzer der Schemaerweiterung ist. Diese Eigenschaft kann bei der Erstellung bereitgestellt werden, um den Besitzer anzugeben. Wird Sie nicht bereitgestellt, wird die appId der aufrufenden Anwendung als Besitzer festgelegt. Wenn Sie z. B. eine neue Definition für eine Schemaerweiterung mit dem Graph-Tester erstellen, müssen Sie die Besitzereigenschaft angeben. Wurde diese Eigenschaft einmal festgelegt, ist sie schreibgeschützt und kann nicht geändert werden.
properties extensionSchemaProperty-Sammlung Erforderlich. Die Sammlung von Eigenschaftennamen und Typen, die die Schemaerweiterungsdefinition bilden.
targetTypes String-Sammlung Erforderlich. 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

Das folgende Beispiel zeigt die Verwendung eines überprüften Domänennamens , graphlearnund eines Schemanamens, courses, um eine eindeutige Zeichenfolge für die id-Eigenschaft der Schemaerweiterungsdefinition zu bilden. Die eindeutige Zeichenfolge basiert auf diesem Format, {domainName}_{schemaName}. Mit dem Ausschluss des Besitzers aus dem Anforderungstext erwartet Microsoft Graph, dass der Aufrufer der Besitzer der App ist, die diese Anforderung stellt.

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

POST https://graph.microsoft.com/beta/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. Mit dem Ausschluss des Besitzers aus dem Anforderungstext erwartet Microsoft Graph, dass der Aufrufer der Besitzer der App ist, die diese Anforderung stellt.

POST https://graph.microsoft.com/beta/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/beta/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"
        }
    ]
}