Uma visão geral dos conectores HTTP
  • 31 Oct 2023
  • 7 Minutos para Ler
  • Contribuintes

Uma visão geral dos conectores HTTP


Resumo do artigo

Este guia o ajudará a entender a capacidade total dos conectores HTTP.

Se você quiser conectar um sistema externo como um MES ou ERP à Tulip, precisará usar um conector HTTP. Os conectores HTTP da Tulip podem fazer interface com a maioria dos tipos de APIs HTTP, incluindo REST e SOAP.

Procurando um passo a passo sobre como criar conectores HTTP? Faça o curso HTTP Connectors University!

Entendendo as funções do conector

Em um conector HTTP, você pode escrever uma série de Connector Functions que executarão tipos comuns de solicitações HTTP usando entradas predefinidas. As funções do conector são as ações individuais que fazem chamadas para a API. As funções do conector HTTP da Tulip suportam os seguintes métodos:

  • GET
  • HEAD
  • POST
  • PUT
  • PATCH
  • DELETE

e modificações nos seguintes campos:

  • Nome do host, Porta e Caminho
  • Autenticação (nenhuma, Basic Auth, OAuth 2)
  • Cabeçalhos de solicitação
  • Parâmetros de consulta
  • Corpo da solicitação (JSON, formulário codificado por URL, XML ou texto simples)

:::(Info) (OBSERVAÇÃO) Essa seleção afetará o cabeçalho Content-Type. Por exemplo, se você quiser enviar JSON usando a opção Plain Text, deverá codificar manualmente o Content-Type de "application/json" em seus cabeçalhos:

As respostas podem então ser processadas e as informações extraídas dos:

  • Cabeçalhos da resposta
  • Corpo da resposta (JSON usando json-query ou XML usando xpath)

Os conectores HTTP suportam os seguintes tipos de dados nas saídas:

  • Texto
  • Inteiro
  • Flutuante
  • Booleano
  • Datetime*
  • Objetos com todos os tipos de dados acima
  • Matrizes com todos os tipos de dados acima

*A análise de data e hora é compatível:

  • carimbos de data/hora OData em milissegundos desde 1º de janeiro de 1970 UTC
  • números interpretados como milissegundos desde 1º de janeiro de 1970 UTC
  • cadeias de datas ISO 8601

Como criar um conector

Clique em Add Connector (Adicionar conector ) no canto superior direito da página Connectors (Conectores), nomeie o conector e selecione HTTP.

An Overview of HTTP Connectors_122139734.png

Em seguida, você verá a guia Environment. Se você quiser configurar vários ambientes, consulte este guia separado

An Overview of HTTP Connectors_122140278.png

Em seguida, depois de selecionar o Conector, escolha Add Connection Details (Adicionar detalhes da conexão ) para adicionar mais detalhes sobre o servidor que você gostaria de consultar.

An Overview of HTTP Connectors_122140947.png

Há cinco opções.

An Overview of HTTP Connectors_122141109.png

Consulte este guia sobre hosts de conectores.

Host: Inclua apenas o domínio que você gostaria de consultar. Não inclua http:// ou https://. Por exemplo, myaccount.restlet.api.netsuite.com

Porta: deve ser especificada pelo serviço que você está consultando. Normalmente, as solicitações HTTP usam a porta 443.

TLS: selecione "Yes" se estiver usando HTTPS e "No" se estiver usando apenas "HTTP".

Clique em Testar para ver se você consegue se conectar com êxito ao servidor e, em seguida, clique em Salvar.

Para duplicar ou excluir o conector, volte à página Conectores e clique nos três pontos no lado direito do conector específico.

An Overview of HTTP Connectors_122140669.png

Criação de uma função de conector

Clique no botão Add New Function (Adicionar nova função ) na guia Functions (Funções) para criar uma nova função.

An Overview of HTTP Connectors_122141271.png

Em seguida, você verá uma série de opções para editar sua função.

Primeiro, nomeie a função no canto superior esquerdo da página.

Em seguida, clique em Add Function Inputs (Adicionar entradas de função ) para começar a adicionar entradas. Exemplo:

Se você quiser testar sua função de conector HTTP, adicione um "Valor de teste" para cada entrada.

Em seguida, adicione um ponto de extremidade ao final do URL e escolha o tipo de solicitação HTTP.

Selecione Query Parameters (Parâmetros de consulta ) para começar a adicionar pares de chave/valor. Use seus Inputs definidos no campo Value (Valor).

Adicione um $ antes e depois do nome do input; por exemplo, se o nome do input for "city_name", digite$city_name$.

Manipulação de respostas

Quando estiver satisfeito com suas entradas e saídas, selecione Testar no canto superior direito para criar uma resposta de amostra.

Você verá uma resposta JSON ou XML na seção Resultados do teste. Agora, você pode mapear partes dessa resposta para Outputs e usá-las em aplicativos.

Os extratores de JSON usam a sintaxe json-query. Para testar a sintaxe, use esta ferramenta on-line.

Os extratores XML usam a sintaxe XPATH.

Há duas maneiras de fazer isso:

  1. Clique nas propriedades no corpo da resposta para mapeá-las para as saídas
  2. Especificar manualmente o caminho usando json-query

Veja como especificar os extratores usando apontar e clicar:

Se você quiser usar json-query, adicione algumas saídas para que possa mapear o conteúdo da resposta para o Tulip.

Em seguida, você precisa especificar "extractors" ao lado de cada saída para indicar os dados do corpo da resposta que você gostaria de armazenar.

Veja um exemplo com json-query: digamos que você escreva uma solicitação GET que retorna uma matriz de objetos. Você deseja retornar o valor da propriedade name do primeiro objeto da matriz.

Isso é o que você escreveria no campo path:

0.name

Também é possível armazenar valores da seção Headers and Cookies da resposta.

De forma semelhante à seção acima, é necessário especificar uma saída específica na seção Output. Em seguida, clique em uma parte de uma resposta de amostra ou use json-query para acessar a propriedade correta do JSON na resposta HTTP.

Aqui está um exemplo em que uma saída chamada "csrf_token" armazena o valor chamado "x-csrf-token" da propriedade no cabeçalho.

As saídas são armazenadas como propriedades de um objeto quando são compartilhadas com um aplicativo. Em seguida, você deve armazenar o objeto em uma variável em um aplicativo. Para obter mais detalhes, consulte este guia para usar saídas do conector com aplicativos

Uso de RegEx para modificar saídas

Você também pode usar RegEx para refinar os valores de texto da resposta. Para fazer isso, adicione uma dessas funções no campo Path para passar o valor por uma expressão regular:

:regexp()

Para capturar várias substrings dentro da string-

:regexpGroup()

Exemplos:

0.name:regexp(^N) 0.name:regexpGroup(^\w + (w+))

Usando RegEx group, você pode querer capturar um único grupo em uma cadeia de caracteres maior. Para fazer isso, adicione uma vírgula ao final da cadeia de caracteres RegEx e adicione o número do grupo específico dentro da cadeia.

parts[0].inputs:regexpGroup(^\w\w\s(\w\w)\s(\w\w)\s(\w\w),2)

Ou use-o para selecionar um item específico em uma matriz que corresponda a uma regra. Por exemplo, o primeiro objeto com um valor de e-mail que comece com n.

.[email:regexp(^N)]

Recomendamos o RegExr para testar seu RegEx. O Tulip usa o mecanismo RegEx do JavaScript (ECMA).

Manuseio de objetos e arrays em saídas

A Tulip suporta tanto objetos quanto arrays na saída JSON. Veja a seguir como usar cada um deles:

Objetos

Para formatar a saída JSON como um objeto, primeiro crie um objeto na seção Outputs e, em seguida, indique o extrator.

No exemplo acima, o objeto é chamado de "singleObj". A saída JSON é uma matriz de objetos, portanto, ele seleciona o objeto no índice 0.

Em seguida, comece a adicionar saídas que correspondam a cada par de chave/valor que você gostaria de armazenar. Você pode adicionar pares de chave/valor com o botão +.

No exemplo acima, há dois campos no objeto singleObj:

  1. userID, que faz referência à propriedade userID e é um número inteiro
  2. id, que faz referência à propriedade id e é um número inteiro

Nesse caso, o extrator não precisa começar com "0." porque ele faz referência automaticamente ao objeto no índice 0.

Para referência, veja como é a saída JSON:

Matrizes de objetos

Para retornar uma matriz de objetos, selecione List of Values (Lista de valores ) na seção Output (Saída) e escolha Objects (Objetos).

Você provavelmente precisará retornar a matriz inteira no nível da raiz na saída JSON.

Para fazer isso, insira um "." para o extrator:

Em seguida, da mesma forma que o extrator de objetos acima, comece a adicionar propriedades individuais que você gostaria de enviar para o aplicativo.

Isso retornaria o userId e o id para cada objeto na matriz. Você pode verificar seu trabalho na seção Outputs dos resultados do teste:

Matrizes de um tipo de dados

Vamos imaginar que você queira obter um valor booleano de cada objeto em uma matriz de valores retornados.

Para fazer isso, crie uma saída para uma matriz de booleanos. Em seguida, indique a propriedade que é usada para armazenar esse valor booleano em cada objeto.

No exemplo acima, a saída é chamada de "completed" e inclui o valor de cada propriedade "completed" na matriz, conforme indicado pelo extrator.

Veja como seria o resultado:

Integrações anteriores

A Tulip pode se integrar a uma variedade de sistemas de software. Aqui estão alguns exemplos de sistemas que foram integrados à Tulip no passado:

Leitura adicional


Encontrou o que estava procurando?

Você também pode ir para community.tulip.co para postar sua pergunta ou ver se outras pessoas tiveram uma pergunta semelhante!


Este artigo foi útil?