Transformación y Validación de Datos

CSV

  • Descripción: el componente CSV se utiliza para leer y escribir datos en formato CSV (Comma-Separated Values). Facilita la manipulación de archivos CSV, permitiendo conversiones y transformaciones de datos de manera eficiente.

CSV para JSON

  • Ejemplo

    • La ruta se activa cuando se realiza una solicitud POST al endpoint /csv-to-json.

    • Los datos en el cuerpo de la solicitud, en formato CSV, se deserializan (unmarshal) en mapas (useMaps: true) utilizando el delimitador definido (delimiter: ",").

    • Estos mapas se transforman en JSON y se devuelven como respuesta.

Script

Diagrama

- from:
    uri: "rest:POST:/csv-to-json"
    steps:
    - unmarshal:
        csv:
          delimiter: ","
          useMaps: true
    - marshal:
        json: {}
component csv to json

JSON para CSV

  • Ejemplo

    • El flujo comienza con una solicitud POST al endpoint /json-to-csv con datos en formato JSON.

    • El JSON recibido se convierte (unmarshal) en una estructura interna manipulable (mapas).

    • Los datos procesados se convierten al formato CSV (marshal) .

      • Además, se utiliza el delimitador ; (punto y coma) para separar los valores.

      • Se añaden los encabezados firstName y lastName.

Script

Diagrama

- from:
    uri: "rest:POST:/json-to-csv"
    steps:
    - unmarshal:
        json: {}
    - marshal:
        csv:
          delimiter: ";"
          header:
          - firstName
          - lastName
component json to csv
Vea más información sobre Data Format como un componente Camel.

JOLT

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

  • 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.

  • 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.

  • 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 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.

  • 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

XJ

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

  • Ejemplo

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

    • Realiza una llamada GET via HTTPS.

    • 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

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.

  • 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, 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
Thanks for your feedback!
EDIT

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