HTTP Client
Com essa entrada é possível realizar uma requisição HTTP e o resultado é enviado para o fluxo do Firehose.
Parâmetros
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