Crear schemaExtensions

Espacio de nombres: microsoft.graph

Cree una nueva definición schemaExtension y su propiedad de extensión de esquema asociada para ampliar un tipo de recurso auxiliar.

Las extensiones de esquema permiten agregar datos personalizados fuertemente tipados a un recurso. La aplicación que crea una extensión de esquema es la aplicación propietaria. En función del estado de la extensión, la aplicación propietaria y solo la aplicación propietaria pueden actualizar o eliminar la extensión.

Vea ejemplos de cómo definir una extensión de esquema que describe un curso de aprendizaje, utilice la definición de la extensión de esquema para crear un nuevo grupo con los datos del curso de aprendizaje, y agregue datos del curso de aprendizaje a un grupo existente.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permisos

Se requiere uno de los siguientes permisos para llamar a esta API. Para obtener más información, incluido cómo elegir permisos, vea Permisos.

Tipo de permiso Permisos (de menos a más privilegiados)
Delegado (cuenta profesional o educativa) Application.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida.
Aplicación Application.ReadWrite.All and Directory.ReadWrite.All

Nota:

De manera adicional para el flujo delegado, el usuario que ha iniciado sesión debe ser el propietario de la aplicación que llama O el propietario de la (aplicación con el) appId usada para establecer la propiedad del propietario.

Solicitud HTTP

POST /schemaExtensions

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type application/json

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione una representación JSON de un objeto schemaExtension.

En la tabla siguiente se muestran las propiedades necesarias para crear una extensión de esquema.

Parámetro Tipo Descripción
description String Descripción de la extensión de esquema.
id Cadena Identificador único para la definición de la extensión de esquema.
Puede asignar un valor de dos maneras:
  • Concatene el nombre de uno de los dominios comprobados con un nombre para la extensión de esquema para formar una cadena única en este formato, {domainName}_{schemaName}. Por ejemplo: contoso_mySchema. NOTA: Solo se admiten los dominios comprobados bajo los siguientes dominios de primer nivel: .com, .net, .gov, .edu o .org.
  • Proporcione un nombre de esquema y deje que Microsoft Graph use ese nombre de esquema para completar la asignación de identificador en este formato: ext{8-random-alphanumeric-chars}_{schema-name}. Un ejemplo sería extkvbmkofy_mySchema.
Una vez creada, esta propiedad no se puede modificar.
owner String (Opcional) El appId de la aplicación que es el propietario de la extensión del esquema. De forma predeterminada, la aplicación de llamada appId se establecerá como la propietaria. Sin embargo, es posible que la propiedad se proporcione durante la creación para establecer el appId del propietario en algo distinto de la aplicación que llama. En todos los casos, en el flujo delegado, el usuario que ha iniciado sesión debe ser el propietario de la aplicación que se establece como extensión de esquema del propietario. Así, por ejemplo, si crea una nueva definición de extensión de esquema mediante el probador de Graph, debe proporcionar la propiedad de propietario para un appId que sea de su propiedad. Una vez establecida, esta propiedad es de solo lectura y no se puede cambiar.
properties Colección extensionSchemaProperty La colección de tipos y nombres de propiedad que conforman la definición de la extensión de esquema.
targetTypes Colección de cadenas Conjunto de tipos de recursos de Microsoft Graph (compatibles con extensiones de esquema) a los que se puede aplicar la definición de extensión de esquema.

Respuesta

Si se ejecuta correctamente, este método devuelve un código de respuesta 201 Created y el objeto schemaExtensions en el cuerpo de la respuesta.

Ejemplo

Ejemplo 1: Crear una extensión de esquema con un dominio comprobado

Solicitud

Este ejemplo muestra el uso de un nombre de dominio comprobado, graphlearn, y un nombre de esquema, courses, para formar una cadena única para la propiedad id de la definición de la extensión de esquema. La cadena única se basa en este formato, {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"
        }
    ]
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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

Ejemplo 2: Crear una extensión de esquema solo con un nombre

Solicitud

En el ejemplo siguiente se muestra cómo especificar solo un nombre de esquema, courses, en la propiedad id de la solicitud, junto con la representación JSON del resto de las propiedades del objeto schemaExtension . Microsoft Graph asignará y devolverá un valor de cadena único en la respuesta.

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

Respuesta

La respuesta incluye una cadena única en la propiedad id que se basa en el nombre del esquema proporcionado en la solicitud, junto con el resto de la definición de esquema recién creada. El valor en id de la respuesta se basa en el formato ext{8-random-alphanumeric-chars}_{schema-name}.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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

Ejemplo 3: Crear una extensión de esquema estableciendo el propietario

Solicitud

El siguiente ejemplo muestra cómo crear una configuración de extensión de esquema estableciendo al owner. En este escenario, es posible que el usuario de la aplicación no sea el propietario de la aplicación (por ejemplo, si usa el explorador de Microsoft Graph). En este caso, debe establecer la propiedad owner en el appId de una aplicación de su propiedad. Si no lo hace, no estará autorizado para crear una extensión de esquema. Establecer la propiedad owner en la solicitud, junto con la representación JSON del resto de las propiedades del objeto 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"
        }
    ]
}

Respuesta

La respuesta incluye al owner configurado al valor suministrado en la solicitud.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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