Créer une ressource schemaExtension

Espace de noms: microsoft.graph

Importante

Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .

Créez une nouvelle 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. En fonction de l’état de l’extension, l’application propriétaire, et uniquement l’application propriétaire, peut 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 cloud nationaux suivants.

Service global Gouvernement américain L4 Gouvernement américain L5 (DOD) Chine exploitée par 21Vianet
✅ ✅ ✅ ✅

Autorisations

Choisissez l’autorisation ou les autorisations marquées comme étant les moins privilégiées pour cette API. Utilisez une ou plusieurs autorisations privilégiées uniquement si votre application en a besoin. Pour plus d’informations sur les autorisations déléguées et d’application, voir Types d’autorisations. Pour en savoir plus sur ces autorisations, consultez la référence des autorisations.

Type d’autorisation Autorisations les moins privilégiées Autorisations à privilèges plus élevés
Déléguée (compte professionnel ou scolaire) Application.ReadWrite.All Non disponible.
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application Application.ReadWrite.All,et Directory.ReadWrite.All Non disponible.

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 les autorisations.
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 présente les propriétés disponibles lorsque vous créez une extension de schéma.

Paramètre Type Description
description String Facultatif. Description de l’extension du schéma.
id String Obligatoire. Identificateur unique pour la définition d’extension de schéma.
Vous pouvez assigner une valeur de deux manières :
  • Concaténez 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 au 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.
  • Indiquez un nom de schéma et laissez Microsoft Graph utiliser ce nom de schéma pour terminer l’affectation de l’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 Conditionnel. Valeur appId de l’application propriétaire de l’extension de schéma. Cette propriété peut être fournie au moment de la création, afin de définir le propriétaire. Si elle n’est pas fournie, la valeur appId de l’application à l’origine de l’appel sera défini en tant que propriétaire. 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. 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 Obligatoire. Collection de types et de noms de propriété qui composent la définition d’extension de schéma.
targetTypes String collection Obligatoire. 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

L’exemple suivant illustre l’utilisation d’un nom graphlearnde domaine vérifié et d’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}. Avec l’exclusion du propriétaire du corps de la demande, Microsoft Graph s’attend à ce que l’appelant soit le propriétaire de l’application à l’origine de cette demande.

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

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

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 la spécification d’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 de l’objet schemaExtension . Microsoft Graph attribuera et renverra une valeur de chaîne unique dans la réponse. Avec l’exclusion du propriétaire du corps de la demande, Microsoft Graph s’attend à ce que l’appelant soit le propriétaire de l’application à l’origine de cette demande.

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

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

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