Componentes por Orden Alfabético

A continuación, presentamos los componentes con sus descripciones, funciones y ejemplos, organizados por orden alfabético.

Azure Storage Blob Service

  • Descripción: el componente Azure Storage Blob Service almacena y recupera blobs (objeto binario grande) del servicio Azure Storage Blob utilizando las APIs de Azure v12.

  • Función: gatillo y conector.

  • Ejemplo como conector

    • El flujo inicia cuando se realiza una solicitud POST al endpoint /hello.

    • Luego, lista (operation: "listBlobs") todos los blobs almacenados en el contenedor myblobcontainer de la cuenta de almacenamiento camelstorageaccount01 en Azure.

    • La autenticación se realiza mediante una clave de cuenta compartida.

    • Después de la lista, el flujo registra la información obtenida en el 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

  • Descripción: el componente AWS Lambda soporta las funciones AWS Lambda: create, get, list, delete e invoke.

  • Función: conector.

  • Ejemplo

    • En el flujo, se recibe una solicitud POST en el endpoint /hello, activando una secuencia de acciones.

    • Primero, el flujo registra un mensaje en el log, indicando que se recibió la solicitud.

    • Luego, invoca una función específica en AWS Lambda (operation: "invokeFunction"), utilizando credenciales de acceso (access key y secret key) para la autenticación.

    • Después de invocar la función Lambda, se registra un nuevo mensaje en el 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)

  • Descripción: el componente AWS SNS permite que se envíen mensajes a un Amazon Simple Notification Topic.

  • Función: conector.

  • Ejemplo

    • El flujo comienza con una solicitud POST en el endpoint /hello.

    • Cuando se recibe una solicitud, se envía un mensaje a un tópico del 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)

  • Descripción: el componente AWS SQS ofrece soporte para el envío y recepción de mensajes al servicio SQS de Amazon.

  • Función: gatillo y conector.

  • Ejemplo como conector

    • El flujo comienza con una solicitud POST en el endpoint /hello.

    • Cuando se recibe una solicitud, se envía un mensaje al servicio SQS de 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

  • Descripción: el componente Cron permite activar eventos en intervalos de tiempo específicos.

  • Función: gatillo.

  • Ejemplo: el código a continuación configura una ruta para ejecutarse cada 5 minutos, registrando un mensaje en el log.

Script

Diagrama

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

FTP

  • Descripción: el componente FTP proporciona acceso a sistemas de archivos remotos a través de los protocolos FTP y SFTP. Funciona solo en modo pasivo.

  • Función: gatillo y conector.

  • Ejemplo como gatillo

    • El flujo se conecta a un servidor FTP y descarga archivos de texto.

      • Los parámetros indican las credenciales utilizadas para la autenticación (username y password) y que el texto debe filtrar e incluir solo archivos con la extensión .txt.

    • Luego, registra el contenido de esos archivos en un 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

  • Descripción: el FTPS es una versión segura del FTP, que agrega soporte para SSL/TLS para cifrar la conexión.

  • Función: gatillo y conector.

  • Ejemplo como gatillo

    • El flujo está configurado para conectarse a un servidor FTPS en demo.wftpserver.com, utilizando las credenciales proporcionadas (username y password) para descargar archivos con la extensión .txt.

    • El flujo incluye un retraso de 10 segundos entre los intentos de descarga y opera en modo pasivo.

Script

Diagrama

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

HTTP

  • Descripción: el componente HTTP permite la integración con servicios externos a través del protocolo HTTP, facilitando el envío y recepción de solicitudes y respuestas. Soporta varios métodos HTTP, como GET, POST, PUT y DELETE.

  • Función: conector.

  • Ejemplo

    • El flujo inicia al recibir una solicitud POST en el endpoint /hello.

    • Luego, el mensaje recibido se envía al endpoint de teste http://teste.free.beeceptor.com.

Script

Diagrama

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

HTTPS

  • Descripción: el componente HTTPS es una versión segura del HTTP, que utiliza SSL/TLS para cifrar los datos transmitidos entre el cliente y el servidor.

  • Función: conector.

  • Ejemplo

    • El flujo recibe una solicitud GET en el endpoint /tracing.

    • Elimina un encabezado específico (CamelHttpPath).

    • Luego, realiza una solicitud a una API para obtener información sobre la dirección correspondiente al 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

  • Descripción: el componente JOLT permite transformar y manipular datos JSON de manera declarativa, utilizando especificaciones definidas en archivos JOLT.

  • Función: conector.

  • Ejemplo

    • El flujo comienza con una solicitud POST en el endpoint /jolt-poc.

    • se registra el cuerpo de la solicitud en los logs.

    • El flujo transforma el cuerpo de la solicitud utilizando una plantilla Jolt ubicada en el archivo template.json.

      • Los parámetros inputType: JsonString y outputType: JsonString aseguran que la entrada y la salida se manejen como strings JSON.

      • contentCache: true permite almacenar en caché los resultados.

    • Por último, el flujo registra el resultado de la transformación en los 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

  • Descripción: el componente JSLT se utiliza para transformar datos usando plantillas escritas en JSLT. Procesa información de entrada, como JSON o XML, reorganizándola y formateándola de acuerdo con un modelo que usted define.

  • Función: conector.

  • Ejemplo

    • El flujo comienza con una solicitud POST en el endpoint /hello.

    • Los datos de la solicitud son transformados a través del componente JSLT usando el archivo de plantilla expression.jslt.

      • El parámetro contentCache=true habilita el caché del contenido de la plantilla.

    • Por último, el mensaje transformado se registra en el log de nivel 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

  • Descripción: el componente JSONata permite procesar y transformar datos JSON utilizando el lenguaje de consulta JSONata. Posibilita la realización de operaciones complejas, como filtrado, transformación y agregación de datos.

  • Función: conector.

  • Ejemplo

    • El flujo comienza con una solicitud POST en el endpoint /jsonata.

    • Luego, el contenido de la solicitud se transforma usando una expresión JSONata almacenada en el archivo expression.jsonata.

    • Los parámetros indican que:

      • los resultados de la transformación pueden ser almacenados en caché (contentCache: true);

      • el tipo de entrada para la transformación es una string JSON (inputType: JsonString);

      • el tipo de salida también será una string JSON (outputType: JsonString).

    • Luego, los datos se envían a un endpoint externo uri: https://enzcomwvg2nng.x.pipedream.net mediante una solicitud 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

  • Descripción: el componente JSON Schema Validator realiza la validación del bean del cuerpo del mensaje.

  • Función: conector.

  • Ejemplo

    • El flujo comienza cuando se recibe una solicitud POST en el endpoint /hello.

    • Luego, el componente de validación JSON verifica si el cuerpo de la solicitud corresponde al esquema definido en el archivo 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

  • Descripción: el componente Kafka se usa para la comunicación con el broker de mensajes Apache Kafka.

  • Función: gatillo y conector.

  • Ejemplo como conector

    • El flujo se inicia con una solicitude POST en el endpoint /kafka.

    • El mensaje recibido se envía a uno o más tópicos Kafka que corresponden al patrón retry*.

    • La conexión con Kafka se realiza a través del broker especificado.

      • Parámetros de la URI:

        • brokers: "54.207.234.81:38082": especifica la dirección del broker Kafka (en este caso, 54.207.234.81 en el puerto 38082).

        • topicIsPattern: true: indica que el tópico al que se envía el mensaje debe interpretarse como un patrón, permitiendo que se envíen mensajes a todos los tópicos que correspondan al patrón 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

  • Descripción: el componente Log es muy útil para registrar mensajes durante el procesamiento de las rutas. Permite ver lo que está sucediendo en sus integraciones en tiempo real, ayudando en la depuración y el monitoreo.

  • Función: conector.

  • Ejemplo

    • El flujo comienza con una solicitud POST en el endpoint /hello.

    • Elimina el encabezado Exchange.HTTP_PATH del mensaje.

    • Realiza una llamada HTTP a un endpoint externo.

    • Por último, registra la respuesta de esa llamada en los 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

  • Descripción: el componente Mail se usa para enviar y recibir correos electrónicos. Se divide en tres protocolos principales:

    • IMAP para acceder y gestionar correos en el servidor.

    • POP3 para descargar correos del servidor.

    • SMTP para enviar correos electrónicos.

  • Función: gatillo y conector.

IMAP/IMAPS

  • Descripción: el componente IMAP es un protocolo utilizado para recibir correos electrónicos, permitiendo el acceso a varias carpetas de correo y la manipulación de mensajes directamente en el servidor.

    IMAPS es una versión segura del IMAP que transmite datos cifrados usando SSL/TLS.

  • Ejemplo como gatillo: el flujo está configurado para conectarse a una cuenta de correo electrónico usando el protocolo IMAP en el servidor de Gmail (imap.gmail.com) en el puerto 993.

    • Parámetros de la URI:

      • El flujo utiliza las credenciales proporcionadas (username y password) para autenticación;

      • Está configurado para no eliminar correos (delete=false);

      • Está configurado para buscar solo mensajes no leídos (unseen=true);

      • Existe un retraso de 60 segundos (delay=60000), lo que significa que verificará nuevos correos cada minuto.

    • Cuando se encuentra un nuevo correo, el contenido completo del correo se registra en un 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

  • Descripción: el POP3 se usa principalmente para recibir correos electrónicos de un servidor de correo. En el componente mail, permite que Camel lea correos electrónicos de la bandeja de entrada de un servidor POP3.

    POP3S es una versión segura del POP3 que transmite datos cifrados usando SSL/TLS.

  • Ejemplo como gatillo: el código muestra una conexión con un servidor de correo usando el protocolo POP3 seguro (POP3S) para acceder a una cuenta de Gmail.

    • Parámetros de la URI:

      • username=yourusername: nombre de usuario;

      • password=yourpassword: contraseña;

      • delete=false: especifica que los mensajes no deben ser eliminados del servidor después de ser leídos;

      • unseen=true: indica que solo se deben recuperar los mensajes que aún no han sido leídos;

      • delay=60000: define un retraso de 60 segundos entre cada intento de recuperación de nuevos mensajes.

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

  • Descripción: el SMTP se usa para enviar correos electrónicos. En el componente mail de Camel, el SMTP permite que Camel envíe correos electrónicos a partir de un servidor SMTP.

    SMTPS es una versión segura del SMTP que transmite datos cifrados usando SSL/TLS.

  • Ejemplo como conector: cuando se recibe una solicitud POST en el endpoint /hello, el flujo envía un correo electrónico a través del servidor SMTP de Gmail utilizando una conexión segura (SMTPS).

    • Parámetros de la URI:

      • username: "yourusername": el nombre de usuario de la cuenta de Gmail que se está utilizando para la autenticación.

      • password: "yourpassword": la contraseña de la cuenta de Gmail. Esto debe ser tratado con seguridad y no debe ser codificado directamente en producción.

      • mail.smtp.auth: "auth": este parámetro indica que se debe utilizar autenticación SMTP.

      • mail.smtp.starttls.enable: "starttls": este parámetro habilita el STARTTLS, un mecanismo para actualizar una conexión insegura a una conexión 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

  • Descripción: el componente Quartz permite programar y disparar eventos basados en expresiones cron. Permite configurar tareas para que se activen en horarios regulares, como cada minuto, hora o día, usando la sintaxis cron estándar.

  • Función: gatillo.

  • Ejemplo: un flujo es activado por el componente Quartz cada hora, exactamente en el minuto 59.

Script

Diagrama

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

REST

  • Descripción: el componente REST permite crear y gestionar endpoints RESTful, facilitando la comunicación entre aplicaciones a través del protocolo HTTP. Permite la definición de rutas que responden a solicitudes HTTP (como GET, POST, PUT y DELETE), procesando datos, invocando servicios y manipulando información.

  • Función: gatillo y conector.

  • Ejemplo como gatillo

    • El flujo comienza con una solicitud POST en /demo.

    • No hay parámetros adicionales, indicando que se usarán las configuraciones predeterminadas del endpoint.

Script

Diagrama

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

Scheduler

  • Descripción: el componente Scheduler se utiliza para generar intercambios de mensajes cuando un programador se activa.

  • Función: gatillo.

  • Ejemplo

    • En el fragmento a continuación, la URI muestra un programador llamado mySchedulerName, que se activa cada 60 segundos.

Script

Diagrama

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

SFTP

  • Descripción: el componente SFTP proporciona acceso a sistemas de archivos remotos a través de los protocolos FTP y SFTP. Funciona solo en modo pasivo.

Función: gatillo y conector.

  • Ejemplo como conector

    • El flujo del ejemplo está configurado para ser activado por un programador Quartz, que se dispara cada minuto.

    • Cuando se activa el gatillo, el cuerpo del mensaje se define como Hello World.

    • El flujo luego envía este mensaje como un archivo llamado helloworld.txt a un servidor SFTP en la dirección demo.wftpserver.com, en el puerto 2222, en el directorio /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

  • Descripción: el componente Timer se utiliza para generar intercambios de mensajes cuando un temporizador se activa.

  • Función: gatillo.

  • Ejemplo

    • En el fragmento a continuación, la URI muestra un temporizador llamado mytimer, que se activa cada 30 segundos (30.000 milisegundos).

Script

Diagrama

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

XSLT

  • Descripción: el componente XSLT se utiliza para transformar documentos XML usando una hoja de estilo XSLT, permitiendo que los datos se conviertan a diferentes formatos o estructuras.

  • Función: conector.

  • Ejemplo

    • El flujo comienza con una solicitud POST en el endpoint /source-xslt.

    • El EIP toD indica que el flujo debe dirigir la ejecución a una URI dinámica.

    • La ruta luego realiza una solicitud GET al endpoint https://httpbin.org/xml, obteniendo una respuesta en XML.

    • Después, transforma la respuesta XML en JSON utilizando un archivo 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

  • Descripción: el componente XJ permite convertir documentos XML y JSON sin la necesidad de objetos Java intermedios.

  • Función: conector.

  • Ejemplo

    • El flujo comienza al recibir una solicitud POST en el endpoint /example-xj.

    • Realiza una llamada GET a https://httpbin.org/xml.

    • Transforma la respuesta XML recibida en JSON usando el componente XSLT.

      • El parámetro transformDirection: XML2JSON indica la dirección de la transformación, que en este caso es de XML a JSON.

    • Convierte el JSON en un objeto Java.

    • Por último, establece el encabezado Content-Type como application/json para indicar el tipo de respuesta.

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]