UiPath Documentation
maestro-automate
latest
false
Guia do usuário do Maestro Automate

HTTP Request

O nó HTTP Request envia uma solicitação para um endereço da Web, com sua configuração, autenticação e ramificação de resposta.

O que faz​

Envia uma solicitação HTTP para uma URL e disponibiliza a resposta para os nós depois dela.

Opções de autenticação​

Um nó de solicitação HTTP abrange ambas as formas de autenticação, que você escolhe no campo Autenticação :

  • Autenticação manual: o método, URL, cabeçalhos, corpo e credenciais são configurados em linha. Ajusta-se a qualquer ponto de extremidade de Transferência de estado representativo (REST) onde as credenciais são gerenciadas no nó, por exemplo, um cabeçalho de chave de API ou um token de portador.
  • Autenticação baseada em conector: a solicitação passa por uma conexão, então a conexão lida com a autenticação e as credenciais não são configuradas no nó. Ajusta o gerenciamento de credenciais centralizado em um serviço que está conectado por meio do Integration Service.

Referência de configuração​

CampoRequiredPadrãoDescription
Importação ou exportaçãoNãoNenhumUm menu acima dos campos. Importar do cURL analisa um comando cURL e preenche o método, URL, cabeçalhos e corpo automaticamente.
AutenticaçãoSimAutenticação manualComo a solicitação é autenticada. A autenticação manual passa as credenciais nos cabeçalhos de solicitação. A autenticação baseada em conector envia a solicitação por meio de uma conexão, conforme descrito abaixo.
MétodoSimGETMétodo HTTP para a solicitação. Os valores compatíveis são GET, POST, PUT, PATCH e DELETE.
URLSimNenhumURL completo para o qual enviar a solicitação, incluindo o esquema https:// . Em um campo Valor fixo , um valor é inserido com chaves duplas, por exemplo https://api.example.com/users/{{ $vars.userId }}.
CabeçalhosNãoNenhumPares de chave-valor enviados como cabeçalhos de solicitações HTTP. Os nomes e valores de cabeçalho oferecem suporte a expressões de variáveis.
Parâmetros de ConsultaNãoNenhumPares de chave-valor anexados ao URL como uma string de consulta. Nomes e valores oferecem suporte a expressões de variáveis.
Tipo de ConteúdoNãoapplication/jsonTipo MIME (Multipurpose Internet Mail Extensions) do corpo da solicitação. Os valores compatíveis são application/json, application/xml, text/plain e application/x-www-form-urlencoded.
CorpoNãoVazioCorpo da solicitação para solicitações POST, PUT e PATCH. Insira o valor diretamente no editor de código ou use expressões de variável.
Guia de ramificaçãoNãoApenas saída padrãoRamificações de resposta que roteiam o fluxo de trabalho com base em propriedades de resposta. Cada ramificação tem um nome e uma expressão de condição.
Tempo limite (guia Avançado )NãoPT15MTempo máximo para esperar uma resposta, no formato de duração 8601 da Organização Internacional de Normalização (ISO).
Contagem de novas tentativas (guia Avançado )Não0Número de vezes para tentar novamente a solicitação se ela falhar. TeAs NovasTentativas usam o valor do tempo limite como o intervalo de espera.

Autenticação Baseada em Conector​

Quando a Autenticação é Autenticação baseada em conector, o painel mostra esses campos em vez dos manuais:

CampoRequiredDescription
ConectorSimO conector pelo qual enviar a solicitação, por exemplo, Slack.
Conexão (nomeada após o conector, por exemplo, conexão do Slack)SimA conexão a ser usada.
MétodoSimO método HTTP para a solicitação.
URL baseNãoO URL de base do conector, mostrado como um espaço reservado como https://slack.com/api.
PathNãoO caminho do ponto de extremidade para a solicitação da API REST.
CabeçalhosNãoPares de chave-valor, até 20. O conector adiciona seus próprios cabeçalhos Authorization, Accept e Content-Type automaticamente.
Parâmetros de ConsultaNãoPares de chave-valor, até 20.

O editor sugere nomes de cabeçalho comuns, como AuthorizationContent-Type, Accept, X-Api-Key e outros. Para parâmetros de consulta adicionar um parâmetro com nome page e valor 2, envia a solicitação para https://api.example.com/items?page=2.

O nó avalia as condições da ramificação em ordem e segue a primeira correspondência. Se nenhuma ramificação corresponder, o fluxo de trabalho segue a saída Padrão .

As expressões de condição de ramificação usam a mesma sintaxe JavaScript que os nós Decision e Switch:

$vars.httpRequest1.output.code === 200
$vars.httpRequest1.output.code === 200
$vars.httpRequest1.output.code >= 400
$vars.httpRequest1.output.code >= 400

Cada ramificação aparece como um identificador de saída separado no lado direito do nó na tela, junto com o identificador padrão.

Valores de tempo limite comuns:

  • PT30S segundos.
  • : PT5M minutos.
  • PT15M minutos.
  • PT1H hora.

Credenciais​

Você pode autenticar solicitações de duas maneiras.

Autenticação manual​

Passe credenciais diretamente nos cabeçalhos de solicitação. Para a autenticação de chave de API, adicione um cabeçalho com nome X-Api-Key e valor definido para sua chave. Para a autenticação de token de portador, adicione um cabeçalho Authorization com um valor como Bearer <your-token>.

Armazene valores confidenciais, como tokens e chaves de API, em variáveis secretas em vez de codificá-las.

Autenticação Baseada em Conector​

Selecione uma conexão no painel de propriedades. A conexão injeta credenciais na solicitação automaticamente, para que você não precise gerenciar cabeçalhos por conta própria.

Uma conexão se encaixa no gerenciamento de credenciais centralizado, atualização automática de tokens e casos em que vários fluxos de trabalho compartilham as mesmas credenciais de API.

Observação:

Create a connection describes how to create one.

Exemplos​

Exemplo 1: solicitação GET básica​

Obtenha um único recurso de uma API pública.

O nó é configurado com Método definido como GET e URL definido como https://jsonplaceholder.typicode.com/posts/1. Todos os outros campos permanecem em seus padrões.

A resposta está disponível em um nó de Script subsequente:

const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;

return {
  title: body.title,
  userId: body.userId,
  status: status
};
const body = $vars.httpRequest1.output.body;
const status = $vars.httpRequest1.output.code;

return {
  title: body.title,
  userId: body.userId,
  status: status
};

O objeto de resposta está disponível em $vars.httpRequest1.output e contém três campos:

  • $vars.httpRequest1.output.body: o corpo da resposta analisada.
  • $vars.httpRequest1.output.code: o código de status HTTP, por exemplo, 200.
  • $vars.httpRequest1.output.headers: um objeto contendo os cabeçalhos de resposta.

Exemplo 2: solicitação POST com corpo JSON​

Crie um novo recurso enviando uma carga do JSON.

O nó é configurado com Método definido como POST, URL definida como https://api.example.com/orders, um cabeçalho Authorization com o valor Bearer {{ $vars.apiToken }} e Tipo de Conteúdo deixado como application/json. O corpo:

{
  "product": "Widget",
  "quantity": 5,
  "customer_id": "cust_12345"
}
{
  "product": "Widget",
  "quantity": 5,
  "customer_id": "cust_12345"
}

O ID do recurso criado está disponível em um nó subsequente:

const orderId = $vars.httpRequest1.output.body.id;
return { orderId: orderId };
const orderId = $vars.httpRequest1.output.body.id;
return { orderId: orderId };

Se a solicitação falhar e você conectou um identificador de erro, os detalhes do erro estarão disponíveis em $vars.httpRequest1.error:

// In a Script node connected to the error handle
const errorMessage = $vars.httpRequest1.error.message;
const errorStatus = $vars.httpRequest1.error.status;

return {
  failed: true,
  reason: errorMessage,
  httpStatus: errorStatus
};
// In a Script node connected to the error handle
const errorMessage = $vars.httpRequest1.error.message;
const errorStatus = $vars.httpRequest1.error.status;

return {
  failed: true,
  reason: errorMessage,
  httpStatus: errorStatus
};

O objeto de erro contém:

  • code
  • message
  • detail
  • category
  • status

Exemplo 3: rotear respostas com ramificações​

As ramificações de resposta permitem que o fluxo de trabalho siga caminhos diferentes com base na resposta da API sem um nó de decisão separado.

O nó é configurado com Método definido como GET, URL definida como https://api.example.com/users/{{ $vars.userId }} e duas ramificações na guia Ramificação : Success com condição $vars.httpRequest1.output.code === 200 e Not Found com condição $vars.httpRequest1.output.code === 404.

O nó agora tem três identificadores de saída na tela:

  • Sucesso: conecta-se aos nós que processam os dados do usuário.
  • Não encontrado: conecta-se aos nós que lidam com o usuário ausente.
  • Padrão: conecta-se a um caminho de fallback para qualquer outro código de status.

Cada caminho subsequente recebe a resposta completa. Por exemplo, na ramificação Success:

const user = $vars.httpRequest1.output.body;
return { name: user.name, email: user.email };
const user = $vars.httpRequest1.output.body;
return { name: user.name, email: user.email };

Escolhendo entre Solicitação HTTP e um nó de integração​

Use o nó de Solicitação HTTP como uma ferramenta de uso geral para chamar qualquer API. Use um nó de integração dedicado quando existir um para o serviço que você está chamando.

Use Solicitação HTTP quando...Use um nó de integração quando...
A API não tem um conector dedicado no painel Adicionar nóA connector exists for the service, such as Slack, Salesforce, or HubSpot CRM
Você precisa de controle completo sobre os cabeçalhos, parâmetros de consulta e formato do corpoVocê quer entradas e saídas tipadas pré-criadas sem configuração manual
Você está criando um protótipo para uma nova API ou serviço internoDeseja que uma conexão processe o login e a atualização do token
A API usa um esquema de autenticação não padrãoVocê quer um fluxo de trabalho fácil de manter que não será interrompido se a API alterar seu contrato

Como regra, pesquisar primeiro o painel Adicionar nó por um conector é a melhor ordem, com a Solicitação HTTP como o fallback quando não existir nada para o serviço de destino.

Próximas Etapas​

  • Nó de script: transformando e processando dados de resposta HTTP.
  • Nó de decisão: ramificação em condições, como uma alternativa às ramificações de resposta.
  • Variáveis e fluxo de dados: $vars, sintaxe de expressão e escopo de variáveis.
  • Comunidade: faça perguntas e compartilhe fluxos de trabalho com outros construtores no Fórum da UiPath.

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte(opens in new window)

Quer aprender? Academia UiPath(opens in new window)

Tem perguntas? Fórum do UiPath(opens in new window)

Fique por dentro das novidades