Enviando solicitações HTTP em seus fluxos de trabalho

Crie fluxos de trabalho que enviam solicitações HTTP para servidores da web externos, terminais da API e URLs. Por exemplo, é possível criar um fluxo de trabalho que envie uma mensagem para um serviço de troca de mensagens ou que crie um item em um app de gerenciamento de projetos.

Sua solicitação HTTP é compatível com os seguintes métodos HTTP:

  • 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.

Códigos de resposta

Depois que o Flow envia sua solicitação HTTP, ele aguarda no máximo 30 segundos para que seu app responda com um código de status HTTP . Se após 30 segundos o Flow não receber uma resposta do seu app, ela fechará a conexão com seu app e reenviará a solicitação.

Quando o Flow recebe uma resposta, ele processa os códigos da seguinte maneira:

Como o Flow processa os códigos de status.
Códigos de status Como o Flow os processa
200 - Sucesso O Flow supõe que a solicitação POST foi processada por seu app.
202 - Sucesso O Flow supõe que a solicitação POST foi aceita por seu app.
4XX - Erros do cliente

Se seu app enviar um código de status 429 (muitas solicitações) sem um cabeçalho Retry-After, o Flow enviará novamente a solicitação HTTP (POST) em intervalos crescentes por até 24 horas.

Se o seu app enviar um código de status 429 (muitas solicitações) com um cabeçalho Retry-After (que especifica um tempo de espera), o Flow enviará novamente a solicitação HTTP (POST) após o tempo de espera (formatado em segundos) ter passado.

Se o seu app enviar outro código 4XX, o Flow assumirá que houve uma falha e não reenviará a solicitação POST.

5XX - Erros do servidor O Flow reenvia a solicitação HTTP (POST) em intervalos crescentes por até 24 horas.
Outro código de status Se o app retornar um código que não está descrito nesta tabela, o Shopify Plus assumirá que houve uma falha e não reenviará a solicitação POST.

Segurança

Para garantir que as solicitações http sejam as mais seguras, sugerimos seguir estas práticas recomendadas:

  • Adicione | url_encode a uma variável do Liquid na seção do caminho no campo de configuração do URL de ação HTTP. O servidor da web que recebe a solicitação precisa ser compatível com decodificação de URLs ou JSON.

Por exemplo, use esse formato para variáveis do Liquid na seção do caminho no campo de configuração do URL de ação HTTP:

https://example.com/customer/create?first_name={{ customer.firstName | url_encode }}&last_name={{ customer.lastName | url_encode }}
  • Adicione | url_encode ou | json a cada variável de modelo usada na seção do corpo no campo de configuração da ação HTTP. O servidor da web que recebe a solicitação precisa ser compatível com decodificação de URLs ou JSON.

Por exemplo, use | url_encode nesse formato quando tiver um Content-Type application/x-www-form-urlencoded header:

{
  "first name": "{{customer.firstName | url_encode}}",
  "last name": "{{customer.lastName | url_encode}}"
}

Use | json nesse formato quando tiver um Content-Type application/json header:

{
  "first name": {{customer.firstName | json}},
  "last name": {{customer.lastName | json}}
}

Limitações

Não confunda essa ação de solicitação HTTP com as ações do app criadas com conectores do Flow. Embora os dois recursos enviem solicitações HTTP, eles têm diferenças entre si. Por exemplo, a solicitação HTTP enviada com essa ação não inclui uma action_run_id no cabeçalho.

É um problema conhecido que essa ação processa códigos de status 202 como se a solicitação tivesse sido processada.

Enviar uma solicitação HTTP

  1. No seu fluxo de trabalho, clique em Adicionar ação.
  2. Selecione Enviar solicitação HTTP.
  3. Na seção Método HTTP, preencha os campos da seguinte maneira:

    1. Selecione um dos métodos HTTP.
    2. No campo URL, especifique o URL do servidor.
    3. Opcional: caso a API para a qual você passa informações exija que os dados sejam adicionados ao URL, siga estas instruções: - Se a API exigir informações no cabeçalho, especifique os parâmetros na tabela Cabeçalhos a fim de passá-los para o URL. Se a API permitir que as informações sejam adicionadas ao cabeçalho ou ao caminho do URL, use o cabeçalho, pois essa opção é a mais segura.
    4. Se a API exigir informações no caminho do URL, adicione as variáveis de modelo à parte do caminho que fica após a terceira barra. Por exemplo, no URL https://shopify.com/{{ order.id | url_encode }}, a parte do caminho é {{ order.id | url_encode }}.
  4. No campo Cabeçalhos, adicione os pares de valores-chave. Também é possível adicionar variáveis de modelo à chave ou ao valor.

  5. No campo Corpo, adicione o conteúdo que você deseja enviar ao servidor. Ao enviar mensagens, é útil incluir informações sobre o cliente, o pedido ou o produto envolvido. Para fazer isso, você precisa usar variáveis de modelo.

  6. Clique em Salvar.

Tudo pronto para começar a vender com a Shopify?

Experimente de graça