Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Uma maneira de criar conectores personalizados para Microsoft Copilot Studio os Aplicativos Lógicos Microsoft Power Automate do Azure ou Microsoft Power Apps é fornecer um OpenAPI arquivo de definição, que é um documento legível por máquina e independente de linguagem que descreve as operações e os parâmetros da sua API. Juntamente com a funcionalidade pronta a utilizar do OpenAPI, também pode incluir as seguintes extensões OpenAPI quando criar conectores personalizados para Logic Apps e Power Automate:
summaryx-ms-summarydescriptionx-ms-visibilityx-ms-api-annotationx-ms-operation-contextx-ms-capabilitiesx-ms-triggerx-ms-trigger-hintx-ms-notification-contentx-ms-notification-urlx-ms-url-encodingx-ms-dynamic-values and x-ms-dynamic-listx-ms-dynamic-schema and x-ms-dynamic-properties
As seguintes secções descrevem estas extensões.
resumo
Especifica o título da ação (operação).
Aplica-se a: Operações Recomendadas: Use maiúsculas e minúsculas
para summary.
Exemplo: "Quando um evento é adicionado ao calendário" ou "Enviar um e-mail"
"actions" {
"Send_an_email": {
/// Other action properties here...
"summary": "Send an email",
/// Other action properties here...
}
},
x-ms-summary
Especifica o título de uma entidade.
Aplica-se a: Parâmetros, esquema
de resposta Recomendado: Use caso de título para x-ms-summary.
Exemplo: "ID do calendário", "Assunto", "Descrição do evento"
"actions" {
"Send_an_email": {
/// Other action properties here...
"parameters": [{
/// Other parameters here...
"x-ms-summary": "Subject",
/// Other parameters here...
}]
}
},
descrição
Especifica uma explicação detalhada da funcionalidade da operação ou do formato e função de uma entidade.
Aplica-se a: Operações, parâmetros, esquema
de resposta Recomendado: Use maiúsculas e minúsculas para description.
Exemplo: "Esta operação é acionada quando um novo evento é adicionado ao calendário", "Especifique o assunto do e-mail"
"actions" {
"Send_an_email": {
"description": "Specify the subject of the mail",
/// Other action properties here...
}
},
x-ms-visibility
Determina a visibilidade da entidade para o utilizador.
Valores possíveis: important, advanced e internal
Aplica-se a: Operações, parâmetros, esquemas
-
importantAs operações e os parâmetros são sempre mostrados ao utilizador primeiro. -
advancedAs operações e os parâmetros ficam ocultos em um menu adicional. -
internaloperações e parâmetros são ocultos do utilizador.
Nota
Para parâmetros que são internal e required, você deve fornecer valores padrão.
Exemplo: Os menus Ver mais e Mostrar opções avançadas estão a ocultar advanced operações e parâmetros.
"actions" {
"Send_an_email": {
/// Other action properties here...
"parameters": [{
"name": "Subject",
"type": "string",
"description": "Specify the subject of the mail",
"x-ms-summary": "Subject",
"x-ms-visibility": "important",
/// Other parameter properties here...
}]
/// Other action properties here...
}
},
x-ms-api-annotation
Utilizado para controlo de versões e gestão do ciclo de vida de uma operação.
Aplica-se a: operações
-
family—Uma cadeia de caracteres que indica a pasta da família de operações. -
revision—Um número inteiro indicando o número da revisão. -
replacement—Um objeto que contém as informações e operações da API de substituição.
"x-ms-api-annotation": {
"family": "ListFolder",
"revision": 1,
"replacement": {
"api": "SftpWithSsh",
"operationId": "ListFolder"
}
}
x-ms-operation-context
Utilizado para simular a ativação do acionador para permitir o teste de um fluxo dependente do acionador.
Aplica-se a: operações
"x-ms-operation-context": {
"simulate": {
"operationId": "GetItems_V2",
"parameters": {
"$top": 1
}
}
x-ms-capabilities
Quando utilizado a nível do conector, trata-se de uma descrição geral das capacidades oferecidas pelo conector, incluindo operações específicas.
Aplica-se a: Conectores
"x-ms-capabilities": {
"testConnection": {
"operationId": "GetCurrentUser"
},
}
Quando utilizado a nível da operação, é utilizado para identificar se a operação suporta o tamanho do segmento de carregamento e/ou estático e pode ser fornecida pelo utilizador.
Aplica-se a: operações
-
chunkTransfer—Um valor booleano para indicar se a transferência de partes é suportada.
"x-ms-capabilities": {
"chunkTransfer": true
}
x-ms-trigger
Identifica se a operação atual é um acionador que produz um único evento. A ausência deste campo significa que se trata de uma action operação.
Aplica-se a: operações
-
single—Resposta do objeto -
batch—Resposta do array
"x-ms-trigger": "batch"
x-ms-trigger-hint
Uma descrição de como acionar um evento para uma operação de acionador.
Aplica-se a: operações
"x-ms-trigger-hint": "To see it work, add a task in Outlook."
x-ms-notification-content
Contém uma definição de esquema de um pedido de notificação de webhook. Trata-se do esquema para uma payload de webhook publicada por serviços externos no URL de notificação.
Aplica-se a: Recursos
"x-ms-notification-content": {
"schema": {
"$ref": "#/definitions/WebhookPayload"
}
},
x-ms-notification-url
Identificado num valor Booleano se um URL de notificação de webhook deve ser colocado neste parâmetro/campo para uma operação de registo de webhook.
Aplica-se a: campos de Parâmetros/entrada
"x-ms-notification-url": true
x-ms-url-encoding
Identifica se o parâmetro path atual deve ser codificado double por URL duplo ou por URL single único. A ausência deste campo indica single codificação.
Aplica-se a: Parâmetros de caminho
"x-ms-url-encoding": "double"
Utilizar valores dinâmicos
Os valores dinâmicos são uma lista de opções para o utilizador selecionar parâmetros de entrada para uma operação.
Aplica-se a: Parâmetros
Como utilizar valores dinâmicos
Nota
Uma cadeia de caracteres de caminho é um ponteiro JSON que não contém a barra à esquerda. Portanto, este é um ponteiro JSON: /property/childProperty, e este é um caminho string: property/childProperty.
Há duas maneiras de definir valore dinâmicos:
Utilização
x-ms-dynamic-valuesNome Necessária Descrição operationId Sim A operação que devolve os valores. parâmetros Sim Um objeto que fornece os parâmetros de entrada necessários para invocar uma operação de valores dinâmicos. value-collection Não Uma cadeia de caminho que é avaliada como uma matriz de objetos no payload de resposta. Se value-collection não for especificado, a resposta será avaliada como uma matriz. value-title Não Uma cadeia de caminho no objeto dentro de value-collection que referencia a descrição do valor. value-path Não Uma cadeia de caminho no objeto dentro de value-collection que referencia o valor do parâmetro. "x-ms-dynamic-values": { "operationId": "PopulateDropdown", "value-path": "name", "value-title": "properties/displayName", "value-collection": "value", "parameters": { "staticParameter": "<value>", "dynamicParameter": { "parameter": "<name of the parameter to be referenced>" } } }Nota
É possível ter referências a parâmetros ambíguos ao utilizar valores dinâmicos. Por exemplo, na seguinte definição de uma operação, os valores dinâmicos fazem referência ao campo id, que é ambíguo da definição porque não está claro se ele faz referência ao parâmetro id ou à propriedade requestBody/id.
{ "summary": "Tests dynamic values with ambiguous references", "description": "Tests dynamic values with ambiguous references.", "operationId": "TestDynamicValuesWithAmbiguousReferences", "parameters": [{ "name": "id", "in": "path", "description": "The request id.", "required": true }, { "name": "requestBody", "in": "body", "description": "query text.", "required": true, "schema": { "description": "Input body to execute the request", "type": "object", "properties": { "id": { "description": "The request Id", "type": "string" }, "model": { "description": "The model", "type": "string", "x-ms-dynamic-values": { "operationId": "GetSupportedModels", "value-path": "name", "value-title": "properties/displayName", "value-collection": "value", "parameters": { "requestId": { "parameter": "id" } } } } } } }], "responses": { "200": { "description": "OK", "schema": { "type": "object" } }, "default": { "description": "Operation Failed." } } }x-ms-dynamic-listNão existe uma forma de referenciar parâmetros de forma não ambígua. Esta funcionalidade poderá ser fornecida no futuro. Se você quiser que sua operação aproveite as novas atualizações, adicione a nova extensão
x-ms-dynamic-listjunto comx-ms-dynamic-values. Além disso, se sua extensão dinâmica fizer referência a propriedades dentro de parâmetros, você terá que adicionar a nova extensãox-ms-dynamic-listjunto comx-ms-dynamic-values. As referências a parâmetros que apontam para propriedades têm de ser expressas como cadeias de caminho.parameters—Esta propriedade é um objeto onde cada propriedade de entrada da operação dinâmica que está a ser chamada é definida com um campo de valor estático ou uma referência dinâmica à propriedade da operação de origem. Estas duas opções são definidas no seguinte.value—Este é o valor literal a ser usado para o parâmetro de entrada. No exemplo a seguir, o parâmetro de entrada da operação GetDynamicList operação chamada version é definido usando um valor estático de 2.0.{ "operationId": "GetDynamicList", "parameters": { "version": { "value": "2.0" } } }parameterReference—Este é o caminho de referência de parâmetro completo, começando com o nome do parâmetro seguido pela cadeia de caracteres do caminho da propriedade a ser referenciada. Por exemplo, a propriedade input da operação GetDynamicList named property1 , que está sob o parâmetrodestinationInputParam1 , é definida como uma referência dinâmica a uma propriedade chamadaproperty1 sob o parâmetro sourceInputParam1 da operação de origem.{ "operationId": "GetDynamicList", "parameters": { "destinationInputParam1/property1": { "parameterReference": "sourceInputParam1/property1" } } }Nota
Se você quiser fazer referência a qualquer propriedade marcada como interna com um valor padrão, será necessário usar o valor padrão como um valor estático na definição aqui, em vez de
parameterReference. O valor padrão da lista não será usado se for definido usandoparameterReference.Nome Necessária Descrição operationId Sim A operação que devolve a lista. parâmetros Sim Um objeto que fornece os parâmetros de entrada necessários para invocar uma operação de lista dinâmica. itemsPath Não Uma cadeia de caminho que é avaliada como uma matriz de objetos no payload de resposta. Se itemsPathnão for fornecida, a resposta será avaliada como uma matriz.itemTitlePath Não Uma cadeia de caracteres de caminho no objeto interno itemsPathque se refere à descrição do valor.itemValuePath Não Uma cadeia de caracteres de caminho no objeto dentro itemsPathque se refere ao valor do item.Com
x-ms-dynamic-list, use referências de parâmetro com a cadeia de caracteres de caminho da propriedade que você está a referenciar. Utilize estas referências a parâmetros para a chave e o valor da referência do parâmetro de operação dinâmica.{ "summary": "Tests dynamic values with ambiguous references", "description": "Tests dynamic values with ambiguous references.", "operationId": "TestDynamicListWithAmbiguousReferences", "parameters": [ { "name": "id", "in": "path", "description": "The request id.", "required": true }, { "name": "requestBody", "in": "body", "description": "query text.", "required": true, "schema": { "description": "Input body to execute the request", "type": "object", "properties": { "id": { "description": "The request id", "type": "string" }, "model": { "description": "The model", "type": "string", "x-ms-dynamic-values": { "operationId": "GetSupportedModels", "value-path": "name", "value-title": "properties/displayName", "value-collection": "cardTypes", "parameters": { "requestId": { "parameter": "id" } } }, "x-ms-dynamic-list": { "operationId": "GetSupportedModels", "itemsPath": "cardTypes", "itemValuePath": "name", "itemTitlePath": "properties/displayName", "parameters": { "requestId": { "parameterReference": "requestBody/id" } } } } } } } ], "responses": { "200": { "description": "OK", "schema": { "type": "object" } }, "default": { "description": "Operation Failed." } } }
Utilizar esquema dinâmico
O esquema dinâmico indica que o esquema do parâmetro ou resposta atual é dinâmico. Este objeto invoca uma operação que é definida pelo valor neste campo, deteta dinamicamente o esquema e apresenta a interface de utilizador adequada para a recolha da entrada do utilizador ou mostra os campos disponíveis.
Aplica-se a: Parâmetros, respostas
Esta imagem mostra como o formulário de entrada é alterado, com base no item que o utilizador seleciona na lista:
A imagem mostra como as entradas são alteradas, com base no item que o utilizador seleciona na lista pendente. Nesta versão, o utilizador seleciona Carros:
Nesta versão, o utilizador seleciona Food:
Como utilizar o esquema dinâmico
Nota
Uma cadeia de caracteres de caminho é um ponteiro JSON que não contém a barra à esquerda. Portanto, este é um ponteiro JSON: /property/childProperty, e este é um caminho string: property/childProperty.
Há duas maneiras de definir um esquema dinâmico:
x-ms-dynamic-schema:Nome Necessária Descrição operationId Sim A operação que devolve o esquema. parâmetros Sim Um objeto que fornece os parâmetros de entrada necessários para invocar uma operação de esquema dinâmico. value-path Não Uma cadeia de caminho que se refere à propriedade que tem o esquema. Se não for especificado, presume-se que a resposta contenha o esquema nas propriedades do objeto raiz. Se especificado, a resposta bem sucedida deve conter a propriedade. Para um esquema vazio ou indefinido, este valor deve ser nulo. { "name": "dynamicListSchema", "in": "body", "description": "Dynamic schema for items in the selected list", "schema": { "type": "object", "x-ms-dynamic-schema": { "operationId": "GetListSchema", "parameters": { "listID": { "parameter": "listID-dynamic" } }, "value-path": "items" } } }Nota
Poderão existir referências ambíguas nos parâmetros. Por exemplo, na seguinte definição de uma operação, o esquema dinâmico faz referência a um campo chamado query, que não pode ser compreendido deterministicamente a partir da definição, seja fazendo referência à consulta de objeto de parâmetro ou à consulta/consulta de propriedadede cadeia de caracteres.
{ "summary": "Tests dynamic schema with ambiguous references", "description": "Tests dynamic schema with ambiguous references.", "operationId": "TestDynamicSchemaWithAmbiguousReferences", "parameters": [{ "name": "query", "in": "body", "description": "query text.", "required": true, "schema": { "description": "Input body to execute the request", "type": "object", "properties": { "query": { "description": "Query Text", "type": "string" } } }, "x-ms-summary": "query text" }], "responses": { "200": { "description": "OK", "schema": { "x-ms-dynamic-schema": { "operationId": "GetDynamicSchema", "parameters": { "query": { "parameter": "query" } }, "value-path": "schema/valuePath" } } }, "default": { "description": "Operation Failed." } } }Exemplos de conectores open source
Conector Cenário Associar Emissão de Pedidos Obtenha esquema para detalhes de um evento selecionado Emissão de bilhetes x-ms-dynamic-properties:Não existe uma forma de referenciar parâmetros de forma não ambígua. Esta funcionalidade poderá ser fornecida no futuro. Se você quiser que sua operação aproveite as novas atualizações, adicione a nova extensão
x-ms-dynamic-propertiesjunto comx-ms-dynamic-schema. Além disso, se sua extensão dinâmica fizer referência a propriedades dentro de parâmetros, você terá que adicionar a nova extensãox-ms-dynamic-propertiesjunto comx-ms-dynamic-schema. As referências a parâmetros que apontam para propriedades têm de ser expressas como cadeias de caminho.parameters—Esta propriedade é um objeto onde cada propriedade de entrada da operação dinâmica que está a ser chamada é definida com um campo de valor estático ou uma referência dinâmica à propriedade da operação de origem. Estas duas opções são definidas no seguinte.value—Este é o valor literal a ser usado para o parâmetro de entrada. No exemplo a seguir, o parâmetro de entrada da operação GetDynamicSchema chamada version é definido com um valor estático de 2.0.{ "operationId": "GetDynamicSchema", "parameters": { "version": { "value": "2.0" } } }parameterReference—Este é o caminho de referência de parâmetro completo, começando com o nome do parâmetro seguido pela cadeia de caracteres do caminho da propriedade a ser referenciada. Por exemplo, a propriedade input da operação GetDynamicSchema chamada property1 , que está sob o parâmetrodestinationInputParam1 , é definida como uma referência dinâmica a uma propriedade chamadaproperty1 sob o parâmetro sourceInputParam1 da operação de origem.{ "operationId": "GetDynamicSchema", "parameters": { "destinationInputParam1/property1": { "parameterReference": "sourceInputParam1/property1" } } }Nota
Se você quiser fazer referência a qualquer propriedade marcada como interna com um valor padrão, será necessário usar o valor padrão como um valor estático na definição aqui, em vez de
parameterReference. O valor padrão do esquema não será usado se for definido pelo usoparameterReference.Nome Necessária Descrição operationId Sim A operação que devolve o esquema. parâmetros Sim Um objeto que fornece os parâmetros de entrada necessários para invocar uma operação de esquema dinâmico. itemValuePath Não Uma cadeia de caminho que se refere à propriedade que tem o esquema. Se não for especificado, presume-se que a resposta contenha o esquema no objeto raiz. Se especificado, a resposta bem sucedida deve conter a propriedade. Para um esquema vazio ou indefinido, este valor deve ser nulo. Com
x-ms-dynamic-properties, as referências de parâmetros podem ser usadas com a cadeia de caracteres de caminho da propriedade a ser referenciada, tanto para a chave quanto para o valor da referência de parâmetro de operação dinâmica.{ "summary": "Tests dynamic schema with ambiguous references", "description": "Tests dynamic schema with ambiguous references.", "operationId": "TestDynamicSchemaWithAmbiguousReferences", "parameters": [{ "name": "query", "in": "body", "description": "query text.", "required": true, "schema": { "description": "Input body to execute the request", "type": "object", "properties": { "query": { "description": "Query Text", "type": "string" } } }, "x-ms-summary": "query text" }], "responses": { "200": { "description": "OK", "schema": { "x-ms-dynamic-schema": { "operationId": "GetDynamicSchema", "parameters": { "version": "2.0", "query": { "parameter": "query" } }, "value-path": "schema/valuePath" }, "x-ms-dynamic-properties": { "operationId": "GetDynamicSchema", "parameters": { "version": { "value": "2.0" }, "query/query": { "parameterReference": "query/query" } }, "itemValuePath": "schema/valuePath" } } }, "default": { "description": "Operation Failed." } } }
Próximo passo
Criar um conector personalizado a partir de uma OpenAPI definição
Informações relacionadas
Visão geral dos conectores personalizados
Enviar comentários
Apreciamos os comentários sobre problemas com a nossa plataforma de conectores ou novas ideias de funcionalidades. Para fornecer comentários, vá para Enviar problemas ou obter ajuda com conectores e selecione seu tipo de feedback.