Enviar solicitação HTTP

A ação Enviar solicitação HTTP conecta o fluxo de trabalho a um servidor web ou URL e envia solicitações HTTP.

Depois que o Flow envia a solicitação HTTP, ele aguarda no máximo 30 segundos por um código de resposta HTTP. Se o Flow não receber uma resposta após 30 segundos, ele encerra a conexão com o app. Mais tarde, ele tenta fazer a solicitação novamente.

Campos

A ação Enviar solicitação HTTP contém os seguintes campos.

Campos usados na ação “Enviar solicitação HTTP”.
CampoDescrição
Método HTTPO método da solicitação HTTP a ser enviada. A Enviar solicitação HTTP ação é compatível com os seguintes métodos:
  • Get: envia uma solicitação de informações do servidor.
  • Delete: remove um recurso do servidor.
  • Head: recupera os cabeçalhos de resposta HTTP do servidor.
  • Options: recupera as opções e os recursos compatíveis com o servidor.
  • Patch: atualiza parcialmente um recurso no servidor.
  • Put: atualiza um recurso no servidor.
  • Post: cria ou substitui um recurso no servidor.
URLO URL do servidor para o qual a solicitação HTTP é enviada.
CabeçalhosO par de chave-valor para a solicitação HTTP. É possível inserir vários pares.
CorpoO conteúdo a ser enviado para o servidor.
Em caso de erro do cliente (resposta 4XX)Ao receber um código de resposta que indica um erro do cliente, o Flow:
  • Tentar novamente: tenta novamente por até 24 horas até receber um código de resposta diferente ou o tempo se esgotar.
  • Falhar: a execução do fluxo de trabalho falha.
  • Ignorar: ignora o erro e continua a execução do fluxo de trabalho.
Em caso de erro do servidor (resposta 5XX ou 429)Ao receber um código de resposta que indica um erro do servidor, o Flow:
  • Tentar novamente: tenta novamente por até 24 horas até receber um código de resposta diferente ou o tempo se esgotar.
  • Falhar: a execução do fluxo de trabalho falha.
  • Ignorar: ignora o erro e continua a execução do fluxo de trabalho.

Dados retornados

Para acessar os dados retornados em etapas posteriores a esta ação, use a variável chamada sendHttpRequest, que inclui todos os detalhes da resposta HTTP. Se quiser, use uma ação Executar código para analisar o body da resposta para uso em etapas subsequentes do fluxo de trabalho, como no exemplo abaixo.

Se a ação Enviar solicitação HTTP for usada várias vezes em um único fluxo de trabalho, um número será adicionado ao nome da variável. Por exemplo, em um fluxo de trabalho que usa a ação Enviar solicitação HTTP duas vezes, a primeira variável dos dados retornados será sendHttpRequest e a segunda será sendHttpRequest1. Esse nome não pode ser personalizado.

Códigos de resposta

A tabela a seguir descreve como o Flow processa o código de resposta HTTP após receber uma resposta.

Como o Flow processa os códigos de resposta HTTP.
Código de resposta HTTPComo o Flow processa o código de resposta
2XX ou 3XX (êxito)O Flow marca a solicitação HTTP como bem-sucedida e executa as ações subsequentes no fluxo de trabalho.
Erros 4XX,
Erros 5XX e 429
Dependendo de como a ação está configurada, o Flow:
  • Tentar novamente: tenta novamente por até 24 horas até receber um código de resposta diferente ou o tempo se esgotar.
  • Falhar: a execução do fluxo de trabalho falha.
  • Ignorar: ignora o erro e continua a execução do fluxo de trabalho.
Outro código de respostaSe a resposta retornar um código não descrito nesta tabela ou o tempo se esgotar ao tentar as ações novamente, o Flow marcará a solicitação HTTP como malsucedida, a execução do fluxo de trabalho falhará e as ações subsequentes do fluxo de trabalho não serão executadas.

Segredos

Os segredos são usados para armazenar com segurança informações confidenciais para uso na ação Enviar solicitação HTTP, como tokens de acesso ou senhas. Eles são criados e gerenciados na página Flow > Configurações. Um segredo contém um identificador, valor e descrição. Referencie o segredo como uma variável do Liquid (como {{secrets.handle}}) ou na opção Adicionar segredo ao configurar os campos de URL, valor de cabeçalho ou corpo. Os valores dos segredos nunca ficam visíveis na interface do Flow e são ocultados dos registros de execução do fluxo de trabalho.

Acionadores

A ação Enviar solicitação HTTP pode ser usada em qualquer fluxo de trabalho.

Exemplos

Exemplo 1: enviar uma solicitação HTTP para um serviço externo

Neste exemplo, use o Flow para enviar uma solicitação HTTP para um serviço externo.

Antes de começar, configure um serviço web que receba solicitações HTTP e armazene os dados dessas solicitações para teste, como o Request Catcher. Tenha cuidado ao enviar dados confidenciais (como senhas ou chaves de API) para um serviço de terceiros.

Etapas:

  1. Escolha o acionador Status do produto atualizado, que permite testar o fluxo de trabalho ao alterar o status em um produto.
  2. Adicione a ação Enviar solicitação HTTP ao fluxo de trabalho e conecte-a ao acionador. Depois, abra o painel de configuração clicando na etapa Enviar solicitação HTTP .
    • No campo Método HTTP, insira POST.
    • No campo URL, insira o URL a ser testado, como https://yourFlowTest.requestcatcher.com/test.
    • Na seção Cabeçalhos, insira um cabeçalho com a Chave Content-Type e o Valor text/plain.
    • Na seção Corpo, insira {{product.title}} e {{product.status}} para enviar o título e o status atualizado do produto pelo acionador.
  3. Ative o fluxo de trabalho.
  4. Para testar, altere o status de um produto de Rascunho para Ativo.
  5. Observe os resultados no serviço de teste externo, como https://yourFlowTest.requestcatcher.com/ neste exemplo.

Exemplo 2: usar a ação Executar código para analisar uma resposta HTTP

Neste exemplo, use o Flow para enviar uma solicitação HTTP a um serviço externo e uma ação Executar código para analisar o body da resposta HTTP para uso em etapas posteriores do fluxo de trabalho.

Antes de começar, escolha um serviço web que receba solicitações HTTP e retorne dados, como o Postman Echo. Lembre-se de ter cuidado ao enviar dados confidenciais (como senhas ou chaves de API) para um serviço de terceiros.

Etapas:

  1. Escolha o acionador Status do produto atualizado, que permite testar o fluxo de trabalho ao alterar o status em um produto.

  2. Adicione a ação Enviar solicitação HTTP ao fluxo de trabalho e conecte-a ao acionador. Em seguida, abra o painel de configuração clicando na etapa Enviar solicitação HTTP.

    • No campo Método HTTP, insira POST.

    • No campo URL, insira o URL a ser testado, como https://postman-echo.com/post.

    • Na seção Cabeçalhos, insira um cabeçalho com a Chave Content-Type e o Valor application/json.

    • Na seção Corpo, insira o JSON de exemplo a ser retornado para o fluxo de trabalho, como:

      {
          "productTitle": "{{product.title}}",
          "productStatus": "{{product.status}}"
      }
  3. Adicione a ação Executar código ao fluxo de trabalho e conecte-a à ação Enviar solicitação HTTP. Em seguida, abra o painel de configuração clicando na etapa Executar código.

    • No campo Definir entradas, inclua o body retornado pelo objeto sendHTTPrequest, como:

      query{
        sendHttpRequest {
          body
        }
      }
    • No campo Definir saídas, inclua as saídas definidas no esquema de saída, como:

      type Output {
        productTitle: String!
        productStatus: String!
      }
    • No campo Escrever código, analise a resposta usando o método JSON.parse e verifique se os dados que você retorna correspondem à forma e aos tipos definidos no esquema de saída, como:

      export default function main(input) {
        const body = JSON.parse(input.sendHttpRequest.body);
        console.log("body is", body);
        return {
          productTitle: body.data.productTitle,
          productStatus: body.data.productStatus
        }
      }
  4. Adicione a ação Registrar saída ao fluxo de trabalho e conecte-a à ação Executar código. Em seguida, abra o painel de configuração clicando na etapa Executar código.

    • No campo Saída, inclua as variáveis retornadas pela etapa Executar código, como:

      Title from HTTP response: {{runCode.productTitle}}
      Status from HTTP response: {{runCode.productStatus}}
  5. Ative o fluxo de trabalho.

  6. Para testar, altere o status de um produto de Rascunho para Ativo.

  7. Observe a execução resultante na página Flow / Execuções recentes e veja que os valores na etapa Registrar saída correspondem aos valores retornados da saída Enviar solicitação HTTP.

Modelos

Notificar o provedor de processamento de pedidos sobre próximos pedidos

Envie uma solicitação HTTP para o provedor de processamento de pedidos quando os pedidos forem marcados com a tag “Warehouse” no Order Tagger. Ver modelo

Enviar novos pedidos para o Airtable

Envie pedidos para o Airtable quando um pedido for criado. Ver modelo

Enviar todos os produtos existentes e novos para o Airtable

A cada 10 minutos, encontre produtos que não foram enviados para o Airtable (por tag) e envie-os para o Airtable. Ver modelo

Atualizar produtos em lotes a partir de dados de produtos armazenados no Airtable

Atualize produtos em lotes com base nos dados de produtos armazenados no Airtable. Ver modelo

Notificar clientes sobre cartões-presente perto do vencimento usando o SendGrid

Todos os dias, busque todos os cartões-presente que expiram em 7 dias e envie e-mails para os clientes usando o SendGrid. Ver modelo

Enviar e-mail com o SendGrid quando clientes fizerem um pedido de um item personalizado

Envie um e-mail transacional usando o SendGrid quando um cliente fizer um pedido de um item personalizado. Ver modelo