HTTP Client

Com essa entrada é possível realizar uma requisição HTTP e o resultado é enviado para o fluxo do Firehose.

Parâmetros

Campo
Descrição
Valor

http_client.url

URL do servidor ser requisitado

Tipo: string Obrigatório

http_client.verb

Método HTTP a ser requisitado

Tipo: string Obrigatório

http_client.headers

Headers a serem incluídos na requisição

Tipo: object Valor padrão: {}

http_client.stream

Modo em que a request é mantida aberta e as mensagens lidas linha a linha

Tipo: object Valor padrão: -

http_client.stream.enabled

Ativa o modo streaming

Tipo: boolean Valor padrão: false

http_client.stream.reconnect

Determina se uma conexão deve ser re-estabelecida após a conclusão

Tipo: boolean Valor padrão: false

http_client.stream.scanner

Permite a escolha de um leitor de arquivo

Tipo: object Valor padrão: -

http_client.stream.scanner.type

Forma com a qual o documento deve ser lido

Tipo: string Valor padrão: lines

http_client.stream.scanner.lines

Configurações do scanner de tipo lines

Tipo: object Valor padrão: -

http_client.stream.scanner.lines.max_buffer_size

Define o tamanho máximo do buffer para armazenar dados da linha

Tipo: integer Valor padrão: 65536

http_client.stream.scanner.lines.custom_delimiter

Define um delimitador de linha para detectar o fim de uma linha

Tipo: string Valor padrão: '\n'

http_client.stream.scanner.csv

Configurações do scanner de tipo csv

Tipo: object Valor padrão: -

http_client.stream.scanner.csv.lazy_quotes

Se true, uma aspa pode aparecer num campo sem aspas e uma aspa não duplicada pode aparecer num campo com aspas.

Tipo: boolean Valor padrão: false

http_client.stream.scanner.csv.parse_header_row

Se true, a primeira linha/row será usada como header

Tipo: boolean Valor padrão: true

http_client.stream.scanner.csv.continue_on_error

Caso algum erro de parse, se deve ou não continuar lendo as próximas linhas

Tipo: boolean Valor padrão: false

http_client.stream.scanner.csv.custom_delimiter

Define um delimitador customizado, em vez do padrão que usa vírgula

Tipo: string Valor padrão: ,

http_client.timeout_seconds

Tempo de espera pela resposta da requisição

Tipo: int [1-300] Valor padrão: 1

http_client.basic_auth

Autenticação básica da requisição

Tipo: object Valor padrão: {}

http_client.basic_auth.user_id

Identificador de acesso

Tipo: string Valor padrão: -

http_client.basic_auth.password

Senha de acesso

Tipo: string Valor padrão: -

http_client.oauth2

Autenticação oauth 2 da requisição

Tipo: object Valor padrão: {}

http_client.oauth2.client_key

Chave do cliente da API

Tipo: string Obrigatório

http_client.oauth2.client_secret

Segredo do cliente da API

Tipo: string Obrigatório

http_client.oauth2.token_url

Url do serviço de autenticação

Tipo: string Obrigatório

http_client.oauth2.scopes

Escopos de autenticação

Tipo: []string Valor padrão: []

http_client.oauth2.endpoint_params

Parâmetros adicionais do serviço de autenticação

Tipo: map[string][]string Valor padrão: {}

http_client.tls

Configuração de TLS

Tipo: object Valor padrão: {}

http_client.tls.enabled

Habilitar TLS

Tipo: boolean Obrigatório

http_client.tls.skip_cert_verify

Ignorar verificação de certificado

Tipo: boolean Obrigatório

http_client.tls.root_cas

Certificado principal

Tipo: boolean Valor padrão: ""

http_client.tls.enable_renegotiation

Se o servidor remoto deve solicitar renegociação

Tipo: boolean Valor padrão: false

http_client.tls.client_certs

Lista de certificados do cliente

Tipo: list Valor padrão: []

http_client.tls.client_certs.cert

Certificado

Tipo: string Obrigatório

http_client.tls.client_certs.key

Chave do certificado

Tipo: string Obrigatório

http_client.tls.client_certs.password

Senha do certificado

Tipo: string

http_client.body

Transformação do tipo Bloblang

Tipo: object

http_client.body.mapping

Sintaxe bloblang com a transformação a ser aplicada na mensagem

Tipo: string Obrigatório

http_client.scheduler

Informações do agendador

Tipo: object Obrigatório se o campo stream não for informado

http_client.scheduler.cron

Expressão cron com tempo das execuções

Tipo: string Obrigatório se o campo seconds não for informado

http_client.scheduler.seconds

Tempo em segundos entre as execuções

Tipo: int Obrigatório se o campo cron não for informado

Exemplo

{
  "input": {
    "http_client": {
      "headers": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "stream": {
        "enabled": true,
        "reconnect": false,
        "scanner": {
          "csv": {
            "continue_on_error": false,
            "custom_delimiter": "string",
            "lazy_quotes": false,
            "parse_header_row": true
          },
          "lines": {
            "custom_delimiter": "string",
            "max_buffer_size": 0
          },
          "type": "lines"
        }
      },
      "scheduler": {
        "seconds": 60
      },
      "url": "string",
      "verb": "GET",
      "body": {
        "mapping": "root = {}"
      },
      "timeout_seconds": 1,
      "basic_auth": {
        "user_id": "USER",
        "password": "PASSWORD"
      },
      "oauth2": {
        "client_key": "CLIENT-KEY",
        "client_secret": "CLIENT-SECRET",
        "token_url": "TOKEN-URL",
        "scopes": [
          "SCOPE"
        ],
        "endpoint_params": {
          "param1": [
            "VALUE1"
          ],
          "param2": [
            "VALUE2"
          ]
        }
      },
      "tls": {
        "enabled": true,
        "skip_cert_verify": true,
        "root_cas": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
        "enable_renegotiation": false,
        "client_certs": [
          {
            "cert": "CERT",
            "key": "KEY",
            "password": "PASSWORD"
          }
        ]
      }
    }
  }
}

Resposta

A resposta desse endpoint será no seguinte formato:

{
  "id": "FIREHOSE-ID",
  "input": {
    "http_client": {
      "headers": {
        "additionalProp1": "string",
        "additionalProp2": "string",
        "additionalProp3": "string"
      },
      "stream": {
        "enabled": true,
        "reconnect": false,
        "scanner": {
          "csv": {
            "continue_on_error": false,
            "custom_delimiter": "string",
            "lazy_quotes": false,
            "parse_header_row": true
          },
          "lines": {
            "custom_delimiter": "string",
            "max_buffer_size": 0
          },
          "type": "lines"
        }
      },
      "scheduler": {
        "seconds": 60
      },
      "timeout": "5s",
      "url": "string",
      "verb": "GET",
      "body": {
        "mapping": "root = {}"
      },
      "timeout_seconds": 1,
      "basic_auth": {
        "user_id": "USER",
        "password": "PASSWORD"
      },
      "oauth2": {
        "client_key": "CLIENT-KEY",
        "client_secret": "CLIENT-SECRET",
        "token_url": "TOKEN-URL",
        "scopes": [
          "SCOPE"
        ],
        "endpoint_params": {
          "param1": [
            "VALUE1"
          ],
          "param2": [
            "VALUE2"
          ]
        }
      },
      "tls": {
        "enabled": true,
        "skip_cert_verify": true,
        "root_cas": "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----",
        "enable_renegotiation": false,
        "client_certs": [
          {
            "cert": "CERT",
            "key": "KEY",
            "password": "PASSWORD"
          }
        ]
      }
    }
  },
  "output": {...}
}

Last updated