Compartilhar via


Criar schemaExtension

Namespace: microsoft.graph

Crie uma nova definição schemaExtension e a respetiva propriedade de extensão de esquema associada para expandir um tipo de recurso de suporte.

As extensões de esquema permitem-lhe adicionar dados personalizados com tipos fortes a um recurso. A aplicação que cria uma extensão de esquema é a aplicação proprietária. Dependendo do estado da extensão, a aplicação proprietária e apenas a aplicação proprietária podem atualizar ou eliminar a extensão.

Veja exemplos de como definir uma extensão de esquema que descreve um curso de treinamento, usar a definição de extensão do esquema para criar um novo grupo com dados do curso de treinamento e adicionar dados do curso de treinamento a um grupo existente.

Esta API está disponível nas seguintes implementações de cloud nacionais.

Serviço global US Government L4 US Government L5 (DOD) China operada pela 21Vianet

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

Tipo de permissão Permissões com menos privilégios Permissões com privilégios superiores
Delegado (conta corporativa ou de estudante) Application.ReadWrite.All Indisponível.
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Application Application.ReadWrite.All e Directory.ReadWrite.All Indisponível.

Observação

Além disso, para o fluxo delegado, o usuário conectado deve ser o proprietário do aplicativo de chamada OU o proprietário do (aplicativo com o) appId usado para definir a propriedade do proprietário.

Solicitação HTTP

POST /schemaExtensions

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
Content-Type application/json

Corpo da solicitação

No corpo da solicitação, forneça uma representação JSON de um objeto schemaExtension.

A tabela a seguir mostra as propriedades que são necessárias ao criar uma extensão de esquema.

Parâmetro Tipo Descrição
description String Opcional. Descrição da extensão de esquema.
id Cadeia de caracteres Obrigatório. O identificador exclusivo da definição de extensão de esquema.
Você pode atribuir um valor em uma destas duas maneiras:
  • Concatene o nome de um dos seus domínios verificados com um nome para a extensão de esquema para formar uma cadeia exclusiva neste formato, {domainName}_{schemaName}. Como exemplo, contoso_mySchema. OBSERVAÇÃO: Apenas domínios verificados sob os seguintes domínios de nível superior têm suporte: .com,.net, .gov, .edu ou .org.
  • Forneça um nome de esquema e permita que o Microsoft Graph utilize esse nome de esquema para concluir a atribuição de ID neste formato: ext{8-random-alphanumeric-chars}_{schema-name}. Um exemplo seria extkvbmkofy_mySchema.
Esta propriedade não pode ser alterada após a criação.
owner Cadeia de caracteres Condicional. O appId do aplicativo que é o proprietário da extensão de esquema. Por padrão, a appId dos aplicativos de chamada será definida como proprietário. No entanto, a propriedade pode ser fornecida na criação, para definir a appId do proprietário como algo diferente do aplicativo de chamada. Em todos os casos, no fluxo delegado, o usuário conectado deve ser o proprietário do aplicativo definido como o proprietário da extensão do esquema. Assim, por exemplo, se você criar uma nova definição da extensão de esquema usando o Graph Explorer, você deverá fornecer a propriedade do proprietário, para uma appId que você possui. Uma vez definida, essa propriedade é somente leitura e não pode ser alterada.
properties Coleção extensionSchemaProperty Obrigatório. A coleção de tipos e nomes de propriedades que compõem a definição da extensão de esquema.
targetTypes Coleção de cadeias de caracteres Obrigatório. O conjunto de tipos de recursos do Microsoft Graph (com suporte a extensões do esquema) ao qual esta extensão de esquema pode ser aplicada.

Resposta

Se bem-sucedido, este método retorna o código de resposta 201 Created e o objeto schemaExtension no corpo da resposta.

Exemplo

Exemplo 1: Criar uma extensão de esquema usando um domínio verificado

Solicitação

Este exemplo mostra como usar um nome de domínio verificado, graphlearn e um nome de esquema, courses, para formar uma cadeia de caracteres exclusiva para a propriedade id da definição da extensão de esquema. A cadeia exclusiva baseia-se neste formato, {domainName}_{schemaName}. Com a exclusão do proprietário do corpo do pedido, o Microsoft Graph espera que o autor da chamada seja o proprietário da aplicação que faz este pedido.

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

Resposta

O exemplo a seguir mostra a resposta.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

Exemplo 2: Criar uma extensão de esquema usando apenas um nome

Solicitação

O exemplo seguinte mostra como especificar apenas um nome de esquema, courses, na propriedade ID no pedido, juntamente com a representação JSON das restantes propriedades no objeto schemaExtension . O Microsoft Graph atribuirá e retornará um valor de cadeia de caracteres exclusivo na resposta. Com a exclusão do proprietário do corpo do pedido, o Microsoft Graph espera que o autor da chamada seja o proprietário da aplicação que faz este pedido.

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

Resposta

A resposta inclui uma cadeia de caracteres exclusiva na propriedade id com base no nome do esquema fornecido na solicitação, junto com o resto da definição de esquema recém-criada. O valor no ID na resposta baseia-se no formato ext{8-random-alphanumeric-chars}_{schema-name}.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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

Exemplo 3: Criação de uma extensão de esquema definindo o proprietário

Solicitação

Este exemplo mostra como criar uma extensão de esquema configurando o proprietário. Neste cenário, o usuário do aplicativo pode não ser o proprietário do aplicativo (por exemplo, se você estiver usando o Microsoft Graph Explorer). Neste caso, você deve definir a propriedade do proprietário como a appId de um aplicativo que você possui, caso contrário, você não terá autorização para criar uma extensão de esquema. Defina a propriedade proprietário na solicitação, juntamente com a representação JSON do restante das propriedades no 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"
        }
    ]
}

Resposta

A resposta inclui o proprietário definido como o valor fornecido na solicitação.

Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.

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