HTTP File Trigger - Downloads
Descubra mais sobre o componente HTTP File Trigger e saiba como utilizá-lo na Digibee Integration Platform.
O HTTP File Trigger baixa arquivos grandes de forma robusta e eficiente, chamando o método GET.
Parâmetros
Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB)
.
Methods
Define os métodos aceitos pelo pipeline.
GET, PUT, POST, PATCH e DELETE
String
Response Headers (DB)
Headers a serem retornados pelo endpoint quando o processamento no pipeline terminar. Esse parâmetro não pode ser deixado vazio e aceita Double Braces. Caracteres especiais não devem ser utilizados nas chaves, por conta de possíveis falhas em proxys e gateways.
N/A
Pares de chave-valor
Add Cross-Origin Resource Sharing (CORS)
Adiciona os CORS headers a serem retornados pelo endpoint quando o processamento no pipeline terminar. O Cross-Origin Resource Sharing (CORS) é um mecanismo que permite informar ao navegador quais origens têm a permissão para fazer requisições.
False
Booleano
CORS Headers
Define o CORS especificamente ao pipeline e suas restrições. Para configurar de forma global ao invés de individualmente em cada pipeline, consulte o artigo CORS Global.
N/A
Pares de chave-valor
Form Data Uploads
Habilita/desabilita o recebimento do upload de form data (multi-part form data).
True
Booleano
Body Uploads
Habilita/desabilita o recebimento do upload de bodies.
True
Booleano
Body Upload Content Types
Define os content types permitidos pelo pipeline para o upload de bodies.
application/pdf, application/jpeg
String
Response Content Types
Define os content types de resposta permitidos para o pipeline - ao configurar essa resposta, você determina o formato de resposta.
text/xml, application/xml
String
Maximum Timeout
Tempo máximo (em milissegundos) para o pipeline processar informação antes de retornar uma resposta. Se o processamento demorar mais que a definição do parâmetro, a request é finalizada e retorna um status code 500, mas sem body algum. Padrão: 300000. Limite: 900000.
300000
Inteiro
Maximum Request Size
Define o tamanho máximo do arquivo na solicitação de upload (em MB). Máximo: 100 MB.
50
Inteiro
External API
Se ativada, a opção pública a API em um gateway externo.
True
Booleano
Internal API
Se ativada, a opção pública a API em um gateway interno.
False
Booleano
mTLS enabled API
Se a opção estiver ativada, a API é publicada em um gateway dedicado a APIs com mTLS ativo por padrão. Nesse caso, o host de acesso diferirá dos demais. O pipeline pode ter tanto a opção de External API quanto a Internal API habilitadas simultaneamente, mas é recomendado deixá-las inativas. Este parâmetro não suporta API Key, JWT ou Basic Auth. Para utilizá-lo no seu realm, é necessário fazer uma solicitação via chat, e assim enviaremos as informações necessárias para instalação deste serviço.
False
Booleano
API Key
Se ativada, a opção vai solicitar a chave para consumo da API.
False
Booleano
Token JWT
Se ativada, a opção vai solicitar o token para consumo da API.
False
Booleano
Basic Auth (Fase Beta)
Se a opção estiver ativada, o endpoint só pode ser consumido se uma configuração de Basic Auth estiver presente na requisição. Essa configuração pode ser previamente registrada pela página Consumers na Digibee Integration Platform.
False
Booleano
Additional API Routes
Se ativada, a opção permite que você adicione novas rotas.
False
Booleano
Remove Digibee Prefix from Route
Esta opção estará disponível somente quando os parâmetros External API e Internal API estiverem desabilitados, e os parâmetros mTLS enabled API e Additional API Routes estiverem habilitados. Defina esta opção para remover o prefixo de rota padrão Digibee "/pipeline/{realm}/v{n}" da rota do pipeline. Saiba mais sobre o parâmetro Remove Digibee Prefix from Route na seção abaixo.
False
Booleano
API Routes
Rotas customizáveis.
N/A
String
Rate Limit
Se a opção estiver ativada, uma configuração de rate limiting será aplicada no API Gateway. Esta opção estará disponível somente se API Key ou Basic Auth estiverem ativados. Veja mais sobre esse parâmetro na seção abaixo.
False
Booleano
Limit by
Define a entidade na qual os limites serão aplicados. Opções: API.
API
String
Aggregate by
Define a entidade agregadora dos limites. Opções: Consumer e Credential (API Key, Basic Auth).
Consumer
String
Options
Define o limite de requisições que podem ser feitas dentro de um período de tempo.
N/A
Opções de Rate Limit
Interval
Define o intervalo de tempo para o limite de requisições. Opções: second, minute, hour, day e month.
second
String
Limit
Define o número máximo de requisições que os usuários podem fazer no intervalo de tempo especificado.
N/A
Inteiro
Allow Redelivery Of Messages
Se ativada, a opção permite que as mensagens sejam entregues novamente caso o Pipeline Engine falhe.
N/A
Booleano
Existe um parâmetro de configuração global que obriga todos os pipelines a serem publicados com ao menos a opção API Key ou Basic Auth habilitada.
Informações adicionais sobre parâmetros
Add Cross-Origin Resource Sharing (CORS) - CORS Headers
Utilizamos vírgula para informar múltiplos valores em um header, mas não adicionamos espaço antes ou após a vírgula. Caracteres especiais não devem ser utilizados nas chaves, por conta de possíveis falhas em proxies e gateways.
Remove Digibee Prefix from Route
Como explicado anteriormente, esta opção é recomendada para remover o prefixo de rota padrão Digibee da rota do pipeline.
Digamos que você tenha criado um pipeline e definido o trigger da seguinte forma:
Com as configurações aplicadas e o pipeline implantado, você terá uma nova URL:
Ao remover o prefixo padrão e definir a rota do pipeline pelo parâmetro Additional API Routes, tenha cuidado para não definir uma rota de pipeline existente que esteja em uso por outros pipelines. Caso você tenha mais do que uma versão principal do pipeline, também é importante ter em mente que o versionamento da rota do pipeline deve ser feito pelo usuário devido à ausência de um parâmetro para versionamento da rota. Por exemplo: /pipeline/realm/v1/.
Rate Limit
Ao criarmos APIs, geralmente queremos limitar o número de requisições da API que usuários podem fazer em um dado intervalo de tempo.
Esta ação pode ser executada ativando a opção Rate Limit e aplicando as seguintes configurações:
Se a API possui rotas adicionais, o limite é compartilhado entre todas as rotas. Para aplicar as configurações de rate limit, a API precisa ser configurada com uma API Key ou Basic Auth para que o parâmetro Aggregate by possa ser usado por grupos de credenciais se a opção Consumer estiver selecionada, ou por credenciais individuais se a opção Credential (API Key, Basic Auth) estiver selecionada.
Se vários parâmetros Interval estiverem configurados com valores repetidos, apenas um desses valores é considerado. Também é necessário que um valor maior que zero seja informado para o parâmetro Limit.
Se as opções de rate limiting não forem definidas corretamente, elas serão ignoradas e um warning log será emitido. Você pode visualizar esse log na página de Pipeline Logs.
HTTP File Trigger em ação
Cenário: GET com qualquer content type
Digamos que você tenha um arquivo com mais de 5MB. Você pode chamar um endpoint de pipeline configurado com HTTP Trigger via GET com qualquer content type para que a requisição seja recebida e tratada. O arquivo é devolvido conforme o content type de saída e o seu conteúdo "as-is".
Para isso acontecer, basta você seguir estes passos:
Crie um pipeline e configure seu trigger como HTTP-File, incluindo o método GET e os Response Content Types aceitos.
Insira um File Connector no pipeline para buscar o arquivo a ser disponibilizado. Você pode, por exemplo, configurar o WGet para obter um arquivo de uma URL passada ao endpoint durante a chamada.
Insira o JSON Generator como o último passo do seu pipeline para ser gerado um JSON no seguinte formato:
Esse passo é fundamental para que o HTTP File Trigger entenda que o arquivo serve.
4. Implante o pipeline.
5. Crie um consumer e o configure de modo que tenha acesso ao pipeline.
6. Chame o pipeline através deste curl:
realm_name: se refere ao realm onde o pipeline se encontra.
generated_token: se refere à chave de API gerada pelo consumer recém-criado.
urlDownload: parâmetro passado para o WGet Connector resolver o valor do campo URL. O atributo não é obrigatório, mas permite uma abordagem mais flexível através de Double Braces. Funciona perfeitamente se você definir o path diretamente no WGet Connector.
Resposta do HTTP File Trigger
É simples definir o formato da resposta do pipeline. Adicione um Transformer ao final do pipeline e defina a resposta:
Content-Type precisa ser um dos valores definidos em Response Content Types.
O HTTP File Trigger responde bodies que não sejam arquivos da mesma forma que o HTTP Trigger faz. Isso permite que o pipeline responda com o arquivo ou com alguma outro tipo de conteúdo de acordo com o contexto da invocação. Para que o HTTP File Trigger responda com um body qualquer, basta que o último passo do pipeline tenha a seguinte estrutura:
Atualizado