Partilhar via


Elemento da interface do usuário Microsoft.Solutions.ArmApiControl

O ArmApiControl obtém resultados de uma operação de API do Azure Resource Manager usando GET ou POST. Você pode usar os resultados para preencher conteúdo dinâmico em outros controles.

Exemplo de interface do usuário

Não há interface do usuário para ArmApiControlo .

Esquema

O exemplo a seguir mostra o esquema do controle.

{
  "name": "testApi",
  "type": "Microsoft.Solutions.ArmApiControl",
  "request": {
    "method": "{HTTP-method}",
    "path": "{path-for-the-URL}",
    "body": {
      "key1": "value1",
      "key2": "value2"
    }
  }
}

Saída de exemplo

A saída do controle não é exibida para o usuário. Em vez disso, os resultados da operação são usados em outros controles.

Observações

  • A request.method propriedade especifica o método HTTP. Apenas GET ou POST são permitidos.

  • A request.path propriedade especifica uma URL que deve ser um caminho relativo para um ponto de extremidade do Azure Resource Manager. Pode ser um caminho estático ou pode ser construído dinamicamente referindo valores de saída dos outros controles.

    Por exemplo, uma chamada do Azure Resource Manager para o Microsoft.Network/expressRouteCircuits provedor de recursos.

    "path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/expressRouteCircuits/{circuitName}?api-version=2022-01-01"
    
  • A request.body propriedade é opcional. Use-o para especificar um corpo JSON que é enviado com a solicitação. O corpo pode ser conteúdo estático ou construído dinamicamente, referindo-se a valores de saída de outros controles.

Exemplo

No exemplo a seguir, o providersApi elemento usa o ArmApiControl e chama uma API para obter uma matriz de objetos de provedor.

A providersDropDown propriedade do allowedValues elemento é configurada para usar a matriz e obter os nomes do provedor. Os nomes dos provedores são exibidos na lista suspensa.

A output propriedade providerName mostra o nome do provedor que foi selecionado na lista suspensa. A saída pode ser usada para passar o valor para um parâmetro em um modelo do Azure Resource Manager.

{
  "$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#",
  "handler": "Microsoft.Azure.CreateUIDef",
  "version": "0.1.2-preview",
  "parameters": {
    "basics": [
      {
        "name": "providersApi",
        "type": "Microsoft.Solutions.ArmApiControl",
        "request": {
          "method": "GET",
          "path": "[concat(subscription().id, '/providers/Microsoft.Network/expressRouteServiceProviders?api-version=2022-01-01')]"
        }
      },
      {
        "name": "providerDropDown",
        "type": "Microsoft.Common.DropDown",
        "label": "Provider",
        "toolTip": "The provider that offers the express route connection.",
        "constraints": {
          "allowedValues": "[map(basics('providersApi').value, (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]",
          "required": true
        },
        "visible": true
      }
    ],
    "steps": [],
    "outputs": {
      "providerName": "[basics('providerDropDown')]"
    }
  }
}

Para obter um exemplo do que usa a request.body propriedade, consulte o exemplo de ArmApiControl linha única Microsoft.Common.TextBox. Esse exemplo verifica a disponibilidade de um nome de conta de armazenamento e retorna uma mensagem se o nome não estiver disponível.

Próximos passos

  • Para obter uma introdução à criação de definições de interface do usuário, consulte CreateUiDefinition.json para a experiência de criação do aplicativo gerenciado do Azure.
  • Para obter uma descrição das propriedades comuns em elementos da interface do usuário, consulte Elementos CreateUiDefinition.
  • Para saber mais sobre funções como map, basicse parse, consulte Funções CreateUiDefinition.