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 de enviar uma solicitação HTTP, o Flow espera no máximo 30 segundos por um código de resposta HTTP. Caso não receba uma resposta após esse período, o app fecha a conexão e mais tarde envia novamente a solicitação.

Campos

A ação Send HTTP request ("Enviar solicitação HTTP") apresenta os campos a seguir.

Campos usados na ação Send HTTP request ("Enviar solicitação HTTP").
CampoDescrição
Método HTTPO método de solicitação HTTP para enviar. A ação Send HTTP request ("Enviar solicitação HTTP") é compatível com os seguintes métodos:
  • Get: envia uma solicitação de informação do servidor.
  • Delete: remove um recurso do servidor.
  • Head: recupera os cabeçalhos de resposta HTTP do servidor.
  • Options: recupera as opções e recursos aceitos pelo servidor.
  • Patch: atualiza parcialmente um recurso no servidor.
  • Put: atualiza um recurso no servidor.
  • Post: cria um recurso ou substitui um recurso no servidor.
URLO URL do servidor para o qual a solicitação HTTP é enviada.
CabeçalhosO par de chave-valor da solicitação HTTP. É possível inserir vários deles.
CorpoO conteúdo a ser enviado para o servidor.
Em caso de erro do cliente (resposta 4XX)Ao receber um código de resposta indicando um erro do cliente, o Flow vai:
  • Repetir – tentar de novo por até 24 horas até receber um código de resposta diferente ou o tempo limite expirar.
  • Falhar – falha na execução do fluxo de trabalho.
  • Ignorar – ignorar o erro e continuar a execução do fluxo de trabalho.
Em caso de erro no servidor (resposta 5XX ou 429)Ao receber um código de resposta indicando um erro no servidor, o Flow vai:
  • Repetir – tentar de novo por até 24 horas até receber um código de resposta diferente ou o tempo limite expirar.
  • Falhar – falha na execução do fluxo de trabalho.
  • Ignorar – ignorar o erro e continuar a execução do fluxo de trabalho.

Dados retornados

Para acessar os dados retornados nas etapas que seguem a ação, use a variável denominada sendHttpRequest, que inclui todos os detalhes da resposta HTTP. Opcionalmente, use uma ação Run code ("Executar código") para analisar o body da resposta para uso em etapas subsequentes do fluxo de trabalho, como no exemplo abaixo.

Se uma ação Send HTTP request ("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 Send HTTP request ("Enviar solicitação HTTP") duas vezes, a primeira variável para os dados retornados será sendHttpRequest, e a segunda variável será sendHttpRequest1. Vale lembrar que o nome não pode ser personalizado.

Códigos de resposta

Veja na tabela a seguir uma descrição de como o Flow processa o código de resposta HTTP depois que recebe uma resposta.

Como o Flow processa códigos de resposta HTTP.
Código de resposta HTTPComo o Flow processa o código de resposta
Sucesso 2XX ou 3XXO Flow marca a solicitação HTTP como bem-sucedida e realiza as próximas ações do fluxo de trabalho.
Erros 4XX,
5XX e 429
Dependendo de como a ação for configurada, o Flow vai:
  • Repetir – tentar de novo por até 24 horas até receber um código de resposta diferente ou o tempo limite expirar.
  • Falhar – falha na execução do fluxo de trabalho.
  • Ignorar – ignorar o erro e continuar a execução do fluxo de trabalho.
Outro código de respostaSe a resposta retornar um código não descrito nesta tabela ou expirar ao tentar executar as ações de novo, o Flow marcará a solicitação HTTP como falha, falhará na execução do fluxo de trabalho e não tomará ações subsequentes para esse fluxo de trabalho.

Segredos do app

Chaves secretas são usadas para armazenar com segurança informações confidenciais para uso na ação Send HTTP request ("Enviar solicitação HTTP"), como tokens de acesso ou senhas. As chaves secretas são criadas e gerenciadas na página Flow > Configurações. Uma chave secreta contém um identificador, um valor e uma descrição. Faça referência à chave secreta como uma variável Liquid (como {{secrets.handle}}) ou na opção Adicionar chave secreta ao configurar os campos "URL", "Valor do cabeçalho" ou "Corpo". Os valores das chaves secretas nunca são visíveis na interface do Flow e são ocultados dos logs de execução do fluxo de trabalho.

Acionadores

É possível usar a ação Send HTTP request ("Enviar solicitação HTTP") nos fluxos de trabalho.

Exemplos

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

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

Antes de começar, configure um serviço online que receba solicitações HTTP e armazene os dados dessas solicitações para fins de teste, como o Request Catcher. Lembre-se de ter atenção ao enviar dados confidenciais (como senhas e chaves de API) a serviços de terceiros.

Etapas:

  1. Escolha o acionador Product status updated ("Status do produto atualizado"), que permite alterar o status de um item para testar o fluxo de trabalho.

  2. Adicione uma ação Send HTTP Request ("Enviar solicitação HTTP") ao fluxo de trabalho e conecte-a ao acionador. Em seguida, clique na etapa Send HTTP Request ("Enviar solicitação HTTP") para abrir o painel de configuração.

    • No campo HTTP Method ("Método HTTP"), insira POST.
    • No campo URL, insira o URL para testar, como https://yourFlowTest.requestcatcher.com/test.
    • Na seção Headers ("Cabeçalhos"), insira um cabeçalho com a Key ("Chave") Content-Type e o Value ("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. Teste-a alterando o status de um produto, como de Rascunho para Ativo.

  5. Observe os resultados no serviço de teste externo, como o https://yourFlowTest.requestcatcher.com/ neste exemplo.

Exemplo 2: use a ação Run code ("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 Run code ("Executar código") para analisar o body da resposta HTTP para uso em etapas subsequentes do fluxo de trabalho.

Antes de começar, escolha um serviço da web que receba solicitações HTTP e retorne dados, como o Postman Echo. Lembre-se de tomar o máximo de cuidado ao enviar dados confidenciais (como senhas e chaves de API) para serviços terceirizados.

Etapas:

  1. Escolha o acionador Product status updated ("Status do produto atualizado"), que permite alterar o status de um item para testar o fluxo de trabalho.
  2. Adicione uma ação Send HTTP Request ("Enviar solicitação HTTP") ao fluxo de trabalho e conecte-a ao acionador. Em seguida, clique na etapa Send HTTP Request ("Enviar solicitação HTTP") para abrir o painel de configuração.
    • No campo HTTP Method ("Método HTTP"), insira POST.
    • No campo URL, insira o URL para testar, como https://postman-echo.com/post.
    • Na seção Headers ("Cabeçalhos"), insira um cabeçalho com a Key ("Chave") Content-Type e o Value ("Valor") application/json.
    • Na seção Corpo, insira o JSON de exemplo para retornar ao fluxo de trabalho, tal como: ``` { "productTitle": "{{product.title}}", "productStatus": "{{product.status}}" }
3. Adicione uma ação **Run code** ("Executar código") ao fluxo de trabalho e conecte-o à ação **Send HTTP request** ("Enviar solicitação HTTP"). Em seguida, clique na etapa **Run code** ("Executar código") para abrir o painel de configuração.
      - No campo **Definir entradas**, inclua o `body` retornado pelo objeto `sendHTTPrequest`, tal como:  ```
query{
sendHttpRequest {
  body
}
}
- No campo **Definir saídas**, definido no esquema de saída, tal 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 retornados correspondem à forma e aos tipos definidos no esquema de saída, tal 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
}
}
  1. Adicione a ação Log output ("Saída de registro") ao fluxo de trabalho e conecte-a à ação Run code ("Executar código"). Em seguida, clique na etapa Run code ("Executar código") para abrir o painel de configuração.
    • No campo Saída, inclua as variáveis retornadas pela etapa Executar código, tal como: ``` Title from HTTP response: {{runCode.productTitle}} Status from HTTP response: {{runCode.productStatus}}
5. Ative o fluxo de trabalho.
6. Teste-a alterando o status de um produto, como de **Rascunho** para **Ativo**.
7. Observe a execução resultante na página **[Flow /Execuções recentes](https://admin.shopify.com/apps/flow/activity)** e veja que os valores na etapa **Saída do log** correspondem aos valores retornados da saída **Enviar solicitação HTTP**.

## Modelos {#templates}

### Notificar o provedor de processamento sobre futuros pedidos

Envie uma solicitação HTTP para o provedor de processamento quando houver pedidos com a tag "Warehouse" ("Depósito") no Order Tagger. [Ver modelo](https://shopify.com/admin/apps/flow/editor/templates/e99f15ae-454b-443b-b6c7-7dc4b2afc129).

### Enviar novos pedidos para o Airtable

Envie pedidos para o Airtable quando um pedido for criado. [Ver modelo](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-ab85-7157-90e2-7de1149201a7)

### 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. [Ver modelo](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a789-7f9d-a64e-a9be2b544e82)

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

Atualize produtos em lotes a partir dos dados de produtos que estão armazenados no Airtable. [Ver modelo](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-b499-7384-a418-919d752d7a8b)

### Notificar clientes sobre cartões-presente expirados usando o SendGrid

Todos os dias, receba todos os cartões-presente que vencem em sete dias e envie e-mails para os clientes usando o SendGrid. [Ver modelo](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-a4b9-7ff0-8181-9de43d95ae1e)

### Enviar e-mail usando o SendGrid quando o cliente fizer 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](https://admin.shopify.com/apps/flow/editor/templates/0196f2e1-adc1-7139-9644-43ba3a4c71eb)
Não encontrou as respostas que está procurando? Estamos sempre à disposição para ajudar você.