Créer une ressource schemaExtension

Espace de noms: microsoft.graph

Créez une définition schemaExtension et sa propriété d’extension de schéma associée pour étendre un type de ressource de prise en charge.

Les extensions de schéma vous permettent d’ajouter des données personnalisées fortement typées à une ressource. L’application qui crée une extension de schéma est l’application propriétaire. Selon l’état de l’extension, l’application propriétaire et seule l’application propriétaire peuvent mettre à jour ou supprimer l’extension.

Consultez des exemples du mode de définition d’une extension de schéma qui décrit un cours de formation, utilisez la définition d’extension de schéma pour créer un nouveau groupe avec les données de cours de formation et ajouter des données de cours de formation à un groupe existant.

Cette API est disponible dans les déploiements de cloud national suivants.

Service global Gouvernement des États-Unis L4 Us Government L5 (DOD) Chine gérée par 21Vianet

Autorisations

L’une des autorisations suivantes est nécessaire pour appeler cette API. Pour plus d’informations, notamment sur la façon de choisir les autorisations, voir Autorisations.

Type d’autorisation Autorisations (de celle qui offre le plus de privilèges à celle qui en offre le moins)
Déléguée (compte professionnel ou scolaire) Application.ReadWrite.All
Déléguée (compte Microsoft personnel) Non prise en charge.
Application Application.ReadWrite.All,et Directory.ReadWrite.All

Remarque

De plus, pour le flux délégué, l’utilisateur connecté doit être le propriétaire de l’application appelante OU le propriétaire de l'(application avec l') applicationutilisée pour déterminer la propriété de propriétaire.

Requête HTTP

POST /schemaExtensions

En-têtes de demande

Nom Description
Autorisation Porteur {token}. Obligatoire. En savoir plus sur l’authentification et l’autorisation.
Content-Type application/json

Corps de la demande

Dans le corps de la demande, fournissez une représentation JSON d’un objet schemaExtension.

Le tableau suivant indique les propriétés qui sont requises lorsque vous créez une extension de schéma.

Paramètre Type Description
description String Description de l’extension du schéma.
id Chaîne Identificateur unique pour la définition d’extension de schéma.
Vous pouvez assigner une valeur de deux manières :
  • Concaténer le nom de l’un de vos domaines vérifiés avec un nom pour l’extension de schéma afin de former une chaîne unique dans ce format, {domainName}_{schemaName}. Par exemple : contoso_mySchema. REMARQUE : seuls les domaines vérifiés sous les domaines de premier niveau suivants sont pris en charge : .com, .net, .gov, .edu ou .org.
  • Fournissez un nom de schéma et laissez Microsoft Graph utiliser ce nom de schéma pour terminer l’attribution d’ID au format suivant : ext{8-random-alphanumeric-chars}_{schema-name}. Par exemple, extkvbmkofy_mySchema.
Cette propriété ne peut pas être modifiée après sa création.
owner String (Facultatif) Valeur appId de l’application propriétaire de l’extension de schéma. Par défaut, la valeur appId de l’application à l’origine de l’appel sera définie en tant que propriétaire. Toutefois, la propriété peut être indiquée à la création, pour que l’appId propriétaire ait une autre valeur que celle de l’application appelante. Dans tous les cas, dans le flux délégué, l’utilisateur connecté doit être le propriétaire de l’application en cours de définition en tant que propriétaire de l’extension de schéma. Par exemple, si vous créez une définition d’extension de schéma à l’aide de l’Afficheur Graph, vous devez fournir la propriété de propriétaire d’une appId dont vous êtes propriétaire. Une fois définie, cette propriété est affichée en lecture seule et ne peut pas être modifiée.
propriétés collection extensionSchemaProperty Collection de types et de noms de propriété qui composent la définition d’extension de schéma.
targetTypes Collection de chaînes Définissez des types de ressources Microsoft Graph (prenant en charge les extensions de schéma) auxquels peut s’appliquer la définition d’extension de schéma.

Réponse

En cas de réussite, cette méthode renvoie le code de réponse 201 Created et l’objet schemaExtension dans le corps de la réponse.

Exemple

Exemple 1 : créer une extension de schéma à l’aide d’un domaine vérifié

Demande

Cet exemple montre l’utilisation d’un nom de domaine vérifié, graphlearn, et un nom de schéma, courses, pour former une chaîne unique pour la propriété id de la définition d’extension de schéma. La chaîne unique est basée sur ce 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"
        }
    ]
}

Réponse

L’exemple suivant illustre la réponse.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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"
        }
    ]
}

Exemple 2 : créer une extension de schéma uniquement à l’aide d’un nom

Demande

L’exemple suivant montre comment spécifier uniquement un nom de schéma, courses, dans la propriété id de la requête, ainsi que la représentation JSON du reste des propriétés dans l’objet schemaExtension . Microsoft Graph attribuera et renverra une valeur de chaîne unique dans la réponse.

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"
        }
    ]
}

Réponse

La réponse inclut une chaîne unique dans la propriété id basée sur le nom de schéma fourni dans la requête, ainsi que le reste de la définition de schéma nouvellement créée. La valeur dans id dans la réponse est basée sur le format ext{8-random-alphanumeric-chars}_{schema-name}.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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"
        }
    ]
}

Exemple 3 : créer une extension de schéma en définissant le propriétaire

Demande

Cet exemple montre comment créer une extension de schéma en définissant le propriétaire. Dans ce scénario, l’utilisateur de l’application n’est pas obligatoirement le propriétaire de l’application (par exemple, si vous utilisez l’Explorateur Microsoft Graph). Dans ce cas, vous devez définir la propriété propriétaire sur lappId d’une application que vous détenez, sans quoi vous ne serez pas autorisé à créer une extension de schéma. Définissez la propriété propriétaire dans la demande, ainsi que la représentation JSON du reste des propriétés dans l’objet schemaExtension.

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"
        }
    ]
}

Réponse

La réponse inclut le propriétaire défini d’après la valeur fournie dans la demande.

Remarque : l’objet de réponse affiché ci-après peut être raccourci pour plus de lisibilité.

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"
        }
    ]
}