Share via


Criar schemaExtension

Namespace: microsoft.graph

Importante

As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor Versão.

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

As extensões de esquema permitem adicionar dados personalizados fortemente tipados a um recurso. O aplicativo que cria uma extensão de esquema é o aplicativo proprietário. Dependendo do estado da extensão, o aplicativo proprietário e apenas o aplicativo proprietário podem atualizar ou excluir 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.

Essa API está disponível nas seguintes implantações nacionais de nuvem.

Serviço global Governo dos EUA L4 GOVERNO DOS EUA L5 (DOD) China operada pela 21Vianet

Permissões

Uma das seguintes permissões é necessária para chamar esta API. Para saber mais, incluindo como escolher permissões, confira Permissões.

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

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 estão disponíveis quando você cria uma extensão de esquema.

Parâmetro Tipo Descrição
description String Descrição da extensão de esquema.
id String 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 de seus domínios verificados com um nome para a extensão de esquema para formar uma cadeia de caracteres 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 deixe o Microsoft Graph usar 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 String (Opcional) O appId do aplicativo que é o proprietário da extensão do esquema. Essa propriedade pode ser fornecida na criação, para definir o proprietário. Se não for fornecida, o aplicativo de chamada appId será definido como o proprietário. Então, por exemplo, se criar uma nova definição de extensão do esquema usando o Explorador do Graph, você deverá fornecer a propriedade de proprietário. Uma vez definida, essa propriedade é somente leitura e não pode ser alterada.
properties Coleção extensionSchemaProperty 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 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

O exemplo a seguir mostra o uso de um nome de domínio verificado, graphlearne um nome de esquema, courses, para formar uma cadeia de caracteres exclusiva para a propriedade id da definição de extensão de esquema. A cadeia de caracteres exclusiva é baseada nesse formato, {domainName}_{schemaName}.

No corpo da solicitação, forneça uma representação JSON do 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"
        }
    ]
}

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 a seguir mostra a especificação de apenas um nome de esquema, courses, na propriedade id na solicitação, juntamente com a representação JSON do restante das propriedades no objeto schemaExtension . O Microsoft Graph atribuirá e retornará um valor de cadeia de caracteres exclusivo na resposta.

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

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

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