Compartir a través de


Crear schemaExtensions

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

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

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Application.ReadWrite.All No disponible.
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación Application.ReadWrite.All and Directory.ReadWrite.All No disponible.

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 que están disponibles al crear una extensión de esquema.

Parámetro Tipo Descripción
description Cadena Opcional. Descripción de la extensión de esquema.
id Cadena Obligatorio. 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 Cadena Condicional. El appId de la aplicación que es el propietario de la extensión del esquema. Esta propiedad se puede proporcionar en la creación, para establecer el propietario. Si no se proporciona, entonces la aplicación de llamada appId se establecerá como la propietaria. Así, por ejemplo, si crea una nueva definición de extensión de esquema mediante el Probador de gráfico, debe proporcionar la propiedad owner. Una vez establecida, esta propiedad es de solo lectura y no se puede cambiar.
properties Colección extensionSchemaProperty Obligatorio. 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 Obligatorio. 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

En el ejemplo siguiente se muestra cómo usar un nombre de dominio comprobado, graphlearny un nombre de esquema, courses, para formar una cadena única para la propiedad id de la definición de extensión de esquema. La cadena única se basa en este formato, {domainName}_{schemaName}. Con la exclusión del propietario del cuerpo de la solicitud, Microsoft Graph espera que el autor de la llamada sea el propietario de la aplicación que realiza esta solicitud.

En el cuerpo de la solicitud, proporcione la representación JSON del objeto 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"
        }
    ]
}

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. Con la exclusión del propietario del cuerpo de la solicitud, Microsoft Graph espera que el autor de la llamada sea el propietario de la aplicación que realiza esta solicitud.

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

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

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