Componentes por Ordem Alfabética

A seguir, apresentamos os componentes com suas descrições, funções e exemplos, organizados por ordem alfabética.

Azure Storage Blob Service

  • Descrição: o componente Azure Storage Blob Service é usado para armazenar e recuperar blobs (objeto binário grande) do serviço Azure Storage Blob usando APIs do Azure v12.

  • Função: gatilho e conector.

  • Exemplo como conector

    • O fluxo inicia quando uma requisição POST é feita para o endpoint /hello.

    • Depois ele lista (operation: "listBlobs") todos os blobs armazenados no contêiner myblobcontainer da conta de armazenamento camelstorageaccount01 no Azure.

    • A autenticação é realizada por meio de uma chave de conta compartilhada.

    • Após a listagem, o fluxo registra as informações obtidas no log.

Script

Diagrama

- from:
    uri: "rest:post:/hello"
    steps:
    - to:
        uri: "azure-storage-blob://camelstorageaccount01/myblobcontainer"
        parameters:
          credentialType: "SHARED_ACCOUNT_KEY"
          operation: "listBlobs"
          accessKey: "RAW(**chave de acesso**)"
    - to:
        uri: "log:myLogger"
component azure storage blob service

AWS Lambda

  • Descrição: o componente AWS Lambda suporta as funções AWS Lambda: create, get, list, delete e invoke.

  • Função: conector.

  • Exemplo

    • No fluxo, uma requisição POST é recebida no endpoint /hello, ativando uma sequência de ações.

    • Primeiro, o fluxo registra uma mensagem no log, indicando que a requisição foi recebida.

    • Em seguida, ele invoca uma função específica no AWS Lambda (operation: "invokeFunction"), utilizando credenciais de acesso (access key e secret key) para autenticação.

    • Após a invocação da função Lambda, uma nova mensagem é registrada no log.

Script

Diagrama

- from:
    uri: "rest:post:/hello"
    steps:
    - to:
        uri: "log:myLogger"
    - to:
        uri: "aws2-lambda://sensedia-integration-camel-poc-lambda"
        parameters:
          accessKey: "****"
          secretKey: "****"
          operation: "invokeFunction"
    - to:
        uri: "log:myLogger"
component aws lambda

AWS Simple Notification System (SNS)

  • Descrição: o componente AWS SNS permite que mensagens sejam enviadas para um Amazon Simple Notification Topic.

  • Função: conector.

  • Exemplo

    • O fluxo começa com uma requisição POST no endpoint /hello.

    • Quando uma requisição é recebida, uma mensagem é enviada para um tópico do AWS Simple Notification Service (SNS).

Script

Diagrama

- from:
    uri: "rest:post:/hello"
    steps:
    - to:
        uri: "aws2-sns"
        parameters:
          accessKey: "{accessKey}"
          secretKey: "{secretKey}"
          topicNameOrArn: //{sns-arn}
component aws sns

AWS Simple Queue Service (SQS)

  • Descrição: o componente AWS SQS oferece suporte ao envio e recebimento de mensagens para o serviço SQS da Amazon.

  • Função: gatilho e conector.

  • Exemplo como conector

    • O fluxo começa com uma requisição POST no endpoint /hello.

    • Quando uma requisição é recebida, uma mensagem é enviada para o serviço SQS da Amazon.

Script

Diagrama

- from:
    uri: "rest:post:/hello"
    steps:
    - to:
        uri: "aws2-sqs"
        parameters:
          accessKey: "{accessKey}"
          secretKey: "{secretKey}"
          topicNameOrArn: //{sqs-arn}
component aws sqs

Cron

  • Descrição: o componente Cron permite acionar eventos em intervalos de tempo específicos.

  • Função: gatilho.

  • Exemplo: o trecho abaixo configura uma rota para ser executada a cada 5 minutos, registrando uma mensagem no log.

Script

Diagrama

- from:
    uri: "cron:0/5 * * * *"
    steps:
      - log:
          message: "Executado a cada 5 minutos"
component cron

FTP

  • Descrição: o componente FTP fornece acesso a sistemas de arquivos remotos através dos protocolos FTP e SFTP. Funcionamento apenas no modo passivo.

  • Função: gatilho e conector.

  • Exemplo como gatilho

    • O fluxo se conecta a um servidor FTP e faz o download de arquivos de texto.

      • Os parâmetros indicam as credenciais usadas para autenticação (username e password) e que o texto deve filtrar e incluir apenas arquivos com a extensão .txt.

    • Depois, registra o conteúdo desses arquivos em um log.

Script

Diagrama

- from:
    uri: "ftp://demo.wftpserver.com/download"
    parameters:
      username: "demo"
      password: "demo"
      includeExt: "txt"
    steps:
    - log:
        message: "Downloaded File Content\n: ${body}"
component ftp

FTPS

  • Descrição: o FTPS é uma versão segura do FTP, que adiciona suporte para SSL/TLS para criptografar a conexão.

  • Função: gatilho e conector.

  • Exemplo como gatilho

    • O fluxo é configurado para se conectar a um servidor FTPS em demo.wftpserver.com, utilizando as credenciais fornecidas (username e password) para baixar arquivos com a extensão .txt.

    • O fluxo inclui um atraso de 10 segundos entre as tentativas de download e opera em modo passivo.

Script

Diagrama

- from:
    uri: "ftps:demo.wftpserver.com/download"
    parameters:
      username: "demo"
      password: "demo"
      includeExt: "txt"
      delay: 10000
      passiveMode: true
component ftps

HTTP

  • Descrição: o componente HTTP permite a integração com serviços externos através do protocolo HTTP, facilitando o envio e recebimento de requisições e respostas. Ele suporta diversos métodos HTTP, como GET, POST, PUT e DELETE.

  • Função: conector.

  • Exemplo

    • O fluxo inicia ao receber uma requisição POST no endpoint /hello.

    • Depois, a mensagem recebida é encaminhada para o endpoint http://teste.free.beeceptor.com.

Script

Diagrama

- from:
    uri: "rest:post:hello"
    steps:
      - to:
          uri: "http://teste.free.beeceptor.com"
component http

HTTPS

  • Descrição: o componente HTTPS é uma versão segura do HTTP, que utiliza SSL/TLS para criptografar os dados transmitidos entre o cliente e o servidor.

  • Função: conector.

  • Exemplo

    • O fluxo recebe uma requisição GET no endpoint /tracing.

    • Remove um cabeçalho específico (CamelHttpPath).

    • Em seguida, faz uma requisição para uma API para obter informações sobre o endereço correspondente ao CEP especificado.

Script

Diagrama

from:
    uri: "rest:get:/tracing"
steps:
    - removeHeader:
        name: CamelHttpPath
    - to:
        uri: "https://viacep.com.br/ws/113024001/json/"
        parameters:
            bridgeEndpoint: true
component https

JOLT

  • Descrição: o componente JOLT permite transformar e manipular dados JSON de forma declarativa, utilizando especificações definidas em arquivos JOLT.

  • Função: conector.

  • Exemplo

    • O fluxo começa com uma requisição POST no endpoint /jolt-poc.

    • O corpo da requisição é registrado nos logs.

    • O fluxo transforma o corpo da requisição usando um template Jolt localizado no arquivo template.json.

      • Os parâmetros inputType: JsonString e outputType: JsonString garantem que a entrada e a saída sejam manipuladas como strings JSON.

      • contentCache: true permite cache dos resultados.

    • Por fim, o fluxo registra o resultado da transformação nos logs.

Script

Diagrama

- from:
    uri: "rest:post:/jolt-poc"
    steps:
        - log:
            message: "Got body: ${body}"
        - to:
            uri: "jolt:template.json"
            parameters:
                inputType: JsonString
                outputType: JsonString
                contentCache: true
        - log:
            message: "Result: ${body}"
component jolt

JSLT

  • Descrição: o componente JSLT é utilizado para transformar dados usando templates escritos em JSLT. Ele processa informações de entrada, como JSON ou XML, reorganizando e formatando-as de acordo com um modelo que você define.

  • Função: conector

  • Exemplo

    • O fluxo começa com uma requisição POST no endpoint /hello.

    • Os dados da requisição são transformados por meio do componente JSLT usando o arquivo de template expression.jslt.

      • O parâmetro contentCache=true habilita o cache do conteúdo do template.

    • Por fim, a mensagem transformada é registrada no log de nível info.

Script

Diagrama

- from:
    uri: "rest:post:/hello"
    steps:
    - to:
        uri: "jslt:classpath:expression.jslt"
        parameters:
          contentCache: true
    - to:
        uri: "log:info"
component jslt

JSONata

  • Descrição: o componente JSONata permite processar e transformar dados JSON utilizando a linguagem de consulta JSONata. Ele possibilita a realização de operações complexas, como filtragem, transformação e agregação de dados.

  • Função: conector.

  • Exemplo

    • O fluxo começa com uma requisição POST no endpoint /jsonata.

    • Depois, o conteúdo da requisição é transformado usando uma expressão JSONata armazenada no arquivo expression.jsonata.

    • Os parâmetros indicam que:

      • os resultados da transformação podem ser armazenados em cache (contentCache: true);

      • o tipo de entrada para a transformação é uma string JSON (inputType: JsonString) ;

      • o tipo de saída também será uma string JSON (outputType: JsonString).

    • Depois, os dados são enviados a um endpoint externo uri: https://enzcomwvg2nng.x.pipedream.net via requisição POST.

Script

Diagrama

- from:
      uri: rest:post:/jsonata
      steps:
        - to:
            uri: jsonata:classpath:expression.jsonata
            parameters:
              contentCache: true
              inputType: JsonString
              outputType: JsonString
        - to:
            uri: https://enzcomwvg2nng.x.pipedream.net
            parameters:
              bridgeEndpoint: true
              httpMethod: POST
component jsonata

JSON Schema Validator

  • Descrição: o componente JSON Schema Validator realiza validação de bean do corpo da mensagem.

  • Função: conector.

  • Exemplo

    • O fluxo começa quando uma requisição POST é recebida no endpoint /hello.

    • Depois o componente de validação JSON é usado para verificar se o corpo da requisição corresponde ao esquema definido no arquivo my-json-schema.json.

Script

Diagrama

- from:
    uri: "rest:post:/hello"
    steps:
       - to:
           uri: "json-validator:file:/etc/camel/resources/sensedia-integration-camel-poc-configmap/my-json-schema.json"
component json schema validator

Kafka

  • Descrição: o componente Kafka é usado para comunicação com o broker de mensagens Apache Kafka.

  • Função: gatilho e conector.

  • Exemplo como conector

    • O fluxo se inicia com uma requisição POST no endpoint /kafka.

    • A mensagem recebida é então enviada para um ou mais tópicos Kafka que correspondem ao padrão retry*.

    • A conexão com o Kafka é feita através do broker especificado.

      • Parâmetros da URI:

        • brokers: "54.207.234.81:38082": especifica o endereço do broker Kafka (neste caso, 54.207.234.81 na porta 38082).

        • topicIsPattern: true: indica que o tópico para onde a mensagem está sendo enviada deve ser interpretado como um padrão, permitindo que mensagens sejam enviadas para todos os tópicos que correspondem ao padrão retry*.

Script

Diagrama

- from:
    uri: "rest:post:/kafka"
    steps:
    - to:
        uri: "kafka:retry*"
        parameters:
          brokers: "54.207.234.81:38082"
          topicIsPattern: true
component kafka

Log

  • Descrição: o componente Log é muito útil para registrar mensagens durante o processamento das rotas. Ele permite que você veja o que está acontecendo em suas integrações em tempo real, ajudando na depuração e monitoramento.

  • Função: conector.

  • Exemplo

    • O fluxo começa com uma requisição POST no endpoint /hello.

    • Remove o cabeçalho Exchange.HTTP_PATH da mensagem.

    • Faz uma chamada HTTP para um endpoint externo.

    • Por fim, registra a resposta dessa chamada nos logs.

Script

Diagrama

- from:
    uri: "rest:post:hello"
  steps:
    - removeHeader:
        name: Exchange.HTTP_PATH
    - to:
        uri: "http://teste.free.beeceptor.com/xml-request"
        parameters:
          bridgeEndpoint: true
    - to:
        uri: "log:responseLogger"
component log

Mail

  • Descrição: o componente Mail é usado para enviar e receber e-mails. Ele é é frequentemente dividido em três protocolos principais:

    • IMAP para acessar e gerenciar e-mails no servidor.

    • POP3 para baixar e-mails do servidor.

    • SMTP para envio de e-mails.

  • Função: gatilho e conector.

IMAP/IMAPS

  • Descrição: o componentes IMAP é um protocolo utilizado para receber emails, permitindo o acesso a várias pastas de correio e a manipulação de mensagens diretamente no servidor.

    O IMAPS é uma versão segura do IMAP que transmite dados criptografados usando SSL/TLS.

  • Exemplo como gatilho: o fluxo é configurado para se conectar a uma conta de email usando o protocolo IMAP no servidor do Gmail (imap.gmail.com) na porta 993.

    • Parâmetros da URI:

      • o fluxo utiliza as credenciais fornecidas (username e password) para autenticação;

      • está configurado para não excluir emails (delete=false);

      • está configurado para buscar apenas mensagens não lidas (unseen=true).;

      • existe um atraso de 60 segundos (delay=60000), o que significa que ele irá verificar novos emails a cada minuto.

    • Quando um novo email é encontrado, o conteúdo completo do email é registrado em um log.

Script

Diagrama

- from:
    uri: "imaps://imap.gmail.com:993"
    parameters:
      username: "yourusername"
      password: "yourpassword"
      delete: false
      unseen: true
      delay: 60000
    steps:
    - to:
        uri: "log:email"
        parameters:
          showAll: true
component imaps

POP3/POP3S

  • Descrição: o POP3 é usado principalmente para receber emails de um servidor de correio. No componente mail, ele permite que o Camel leia emails da caixa de entrada de um servidor POP3.

    O POP3S é uma versão segura do POP3 que transmite dados criptografados usando SSL/TLS.

  • Exemplo como gatilho: o código mostra uma conexão com um servidor de email usando o protocolo POP3 seguro (POP3S) para acessar uma conta do Gmail.

    • Parâmetros da URI:

      • username=yourusername: nome do usuário;

      • password=yourpassword: senha;

      • delete=false: especifica que as mensagens não devem ser deletadas do servidor após serem lidas;

      • unseen=true: indica que apenas as mensagens que ainda não foram lidas devem ser recuperadas;

      • delay=60000: define um atraso de 60 segundos entre cada tentativa de recuperação de novas mensagens.

Script

Diagrama

- from:
    uri: "pop3s://pop.gmail.com:995"
    parameters:
      username: "yourusername"
      password: "yourpassword"
      delete: false
      unseen: true
      delay: 60000
    steps:
    - to:
        uri: "log:email"
        parameters:
          showAll: true
component pop3s

SMTP/SMTPS

  • Descrição: o SMTP é usado para enviar emails. No componente mail do Camel, o SMTP permite que o Camel envie emails a partir de um servidor SMTP.

    O SMTPS é uma versão segura do SMTP que transmite dados criptografados usando SSL/TLS.

  • Exemplo como conector: quando uma requisição POST é recebida no endpoint /hello, o fluxo envia um email através do servidor SMTP do Gmail utilizando uma conexão segura (SMTPS).

    • Parâmetros da URI:

      • username: "yourusername": o nome de usuário da conta do Gmail que está sendo usada para autenticação.

      • password: "yourpassword": a senha da conta do Gmail.

      • mail.smtp.auth: "auth": este parâmetro indica que a autenticação SMTP deve ser utilizada.

      • mail.smtp.starttls.enable: "starttls": este parâmetro habilita o STARTTLS, um mecanismo para atualizar uma conexão insegura para uma conexão segura usando TLS.

Script

Diagrama

- from:
    uri: "rest:post:/hello"
    steps:
    - to:
        uri: "smtps://smtp.gmail.com:465"
        parameters:
          username: "yourusername"
          password: "yourpassword"
          mail.smtp.auth: "auth"
          mail.smtp.starttls.enable: "starttls"
component smtps

Quartz

  • Descrição: o componente Quartz permite agendar e disparar eventos com base em expressões cron. Ele permite configurar tarefas para serem acionadas em horários regulares, como a cada minuto, hora ou dia, usando a sintaxe cron padrão.

  • Função: gatilho.

  • Exemplo: um fluxo é acionado pelo componente Quartz a cada hora, exatamente no 59º minuto.

Script

Diagrama

- from:
    uri: "quartz://test"
    parameters:
      cron: "59 * * * *"
component quartz

REST

  • Descrição: o componente REST permite criar e gerenciar endpoints RESTful, facilitando a comunicação entre aplicações por meio do protocolo HTTP. Ele possibilita a definição de rotas que respondem a requisições HTTP (como GET, POST, PUT e DELETE), processando dados, invocando serviços e manipulando informações.

  • Função: gatilho e conector.

  • Exemplo como gatilho

    • O fluxo começa com uma requisição POST em /demo.

    • Não há parâmetros adicionais, indicando que serão usadas as configurações padrão do endpoint.

Script

Diagrama

- from:
      uri: rest:post:/demo
      parameters: {}
component rest

Scheduler

  • Descrição: o componente Scheduler é usado para gerar trocas de mensagens quando um agendador dispara.

  • Função: gatilho.

  • Exemplo

    • No trecho abaixo, a URI mostra um agendador chamado mySchedulerName, que é acionado a cada 60 segundos.

Script

Diagrama

- from:
    uri: "scheduler:mySchedulerName"
    parameters:
        timeUnit: SECONDS
        delay: 60
component scheduler

SFTP

  • Descrição: o componente SFTP fornece acesso a sistemas de arquivos remotos através dos protocolos FTP e SFTP. Funcionamento apenas no modo passivo.

  • Função: gatilho e conector.

  • Exemplo como conector

    • O fluxo do exemplo é configurado para ser acionado por um agendador Quartz, que dispara a cada minuto.

    • Quando o gatilho é ativado, o corpo da mensagem é definido como Hello World.

    • O fluxo então envia essa mensagem como um arquivo chamado helloworld.txt para um servidor SFTP no endereço demo.wftpserver.com, na porta 2222, no diretório /upload.

Script

Diagrama

- from:
    uri: "quartz://ipaas/trigger"
    parameters:
      cron: "* * * * *"
    steps:
    - setBody:
        constant: "Hello World"
    - to:
        uri: "sftp://demo.wftpserver.com:2222/upload"
        parameters:
          username: "demo"
          password: "demo"
          fileName: "helloworld.txt"
          passive: true
component sftp

Timer

  • Descrição: o componente Timer é usado para gerar trocas de mensagens quando um temporizador dispara.

  • Função: gatilho.

  • Exemplo

    • No trecho abaixo, a URI mostra um temporizador chamado mytimer, que é acionado a cada 30 segundos (30.000 milissegundos).

Script

Diagrama

- from:
    uri: "timer:mytimer"
    parameters:
      period: 30000
component timer

XSLT

  • Descrição: o componente XSLT é utilizado para transformar documentos XML usando uma folha de estilo XSLT, permitindo que os dados sejam convertidos para diferentes formatos ou estruturas.

  • Função: conector.

  • Exemplo

    • O fluxo começa com uma requisição POST no endpoint /source-xslt.

    • O EIP toD indica que o fluxo deve direcionar a execução para uma URI dinâmica.

    • A rota então faz uma requisição GET para o endpoint https://httpbin.org/xml, obtendo uma resposta em XML.

    • Depois, transforma a resposta XML em JSON utilizando um arquivo XSLT: response_to_json.xslt.

Script

Diagrama

- from:
    uri: "rest:post:/source-xslt"
    steps:
      - toD:
          uri: "https://httpbin.org/xml"
          parameters:
            bridgeEndpoint: true
            httpMethod: GET
      - to:
          uri: "xslt:classpath:response_to_json.xslt"
component xslt

XJ

  • Descrição: o componente XJ permite converter documentos XML e JSON sem a necessidade de objetos Java intermediários.

  • Função: conector.

  • Exemplo

    • O fluxo começa ao receber uma requisição POST no endpoint /example-xj.

    • Faz uma chamada GET para https://httpbin.org/xml.

    • Transforma a resposta XML recebida em JSON usando o componente XSLT.

      • O parâmetro transformDirection: XML2JSON indica a direção da transformação, que neste caso é de XML para JSON.

    • Converte o JSON em um objeto Java.

    • Por fim, define o cabeçalho Content-Type como application/json para indicar o tipo da resposta.

Script

Diagrama

- from:
    uri: "rest:post:/example-xj"
  steps:
    - toD:
        uri: "https://httpbin.org/xml"
        parameters:
          bridgeEndpoint: true
          httpMethod: GET

    - to:
        uri: "xj:classpath:response_to_json.xslt"
        parameters:
          transformDirection: XML2JSON

    - unmarshal:
        json: {}

    - set-header:
        name: "Content-Type"
        constant: "application/json"
component xj
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]