Desafíos de la CLI
Resuelve problemas reales y demuestra tus habilidades con la línea de comandos participando en nuestros desafíos de la CLI
-
Un desarrollador con algo de experiencia en JavaScript debería poder escribir, ejecutar y depurar jobs complejos de varios pasos con OpenFn, usando solo un editor de texto y su terminal.
-
Si te quedas atascado y necesitas ayuda, publica en community.openfn.org.
Expande para ver la plantilla de reporte de errores
Subject: Bug Report - [Brief Description]**Description:** [Concise description of the bug.]**Steps to Reproduce:**1.2.3.**Environment:**- OS: [e.g., Windows 10]- CLI: [e.g., v0.4.11]- Node: [e.g., v 18.17.1]- NPM: [e.g., 8.19.2]**Attachments:** [Screenshots, error messages, or relevant files.]
🏆 Crea un saludo personalizado
Descripción general:
Crea un nuevo job hello.js que muestre un saludo personalizado con tu nombre.
Objetivo:
Escribe un job de OpenFn con el adaptor common que muestre un mensaje de saludo con tu nombre.
Requisitos:
-
Instala la última versión del adaptor common.
openfn repo install @openfn/language-common
Tareas:
- Crea un archivo nuevo llamado
hello.js. - Escribe un script de JavaScript en
hello.jsque genere un saludo con tu nombre. - Ejecuta el job con el comando
openfn hello.js -a common -o tmp/output.json. - Confirma que se ejecutó correctamente.
Lista de verificación:
- Creaste el archivo nuevo
hello.js. - Escribiste en
hello.jsun script de JavaScript para un saludo personalizado. - Ejecutaste el job con el comando indicado.
- Comprobaste que los logs de la salida de la CLI son correctos.
🏆 Obtén e inspecciona datos por HTTP
Descripción general:
Escribe un job que obtenga datos de usuarios de la API de JSONPlaceholder con el adaptor http de OpenFn.
Objetivo:
Obtén y muestra los detalles del primer usuario de la API de JSONPlaceholder.
Requisitos:
- Instala la última versión del adaptor http.
openfn repo install @openfn/language-http
- Usa la API de JSONPlaceholder.
- Crea un archivo llamado
getUsers.jsque contenga el script.
Tareas:
- Crea un archivo (
getUsers.js) para el script. - Obtén una lista de usuarios de la API de JSONPlaceholder.
- Muestra los detalles del primer usuario.
- Ejecuta el job con OpenFn/cli:
openfn getUsers.js -a http -o tmp/output.json. - Comprueba que los logs de la CLI son los esperados.
Lista de verificación:
- Obtuviste los datos de los usuarios.
- Mostraste correctamente los detalles del primer usuario.
- Usaste correctamente las funciones del adaptor http de OpenFn.
- Comprobaste que los logs de la salida de la CLI son correctos.
🏆 Obtén metadatos de COVID-19
Descripción general:
Obtén y presenta metadatos de COVID-19 con la API del COVID Tracking Project de The Atlantic.
Objetivo:
Escribe un job que obtenga datos de COVID-19 de la API y calcule algunos valores agregados para el período que elijas.
Requisitos:
- Instala la última versión del adaptor http.
openfn repo install @openfn/language-http
Tareas:
- Escribe una operación de OpenFn que obtenga metadatos de COVID-19 de la
API del COVID Tracking Project de The Atlantic.
- Usa
https://api.covidtracking.comcomo tu baseUrl enstate.configuration.
- Usa
- Ejecuta el job con la CLI de OpenFn mediante el comando
openfn your_operation_file.js -a http -o tmp/output.json. - Evalúa la salida y prueba distintas formas de dar formato a los datos de COVID-19 por región o de presentarlos.
Lista de verificación:
- Creaste un archivo de operación de OpenFn.
- Escribiste el código para obtener metadatos de COVID-19 de la API indicada.
- Ejecutaste el job con el comando de la CLI indicado.
- Probaste varias opciones de formato o presentación para los datos obtenidos.
Experimenta con la presentación de los datos para entenderlos mejor. ¡Buena suerte! 🌐🦠
🏆 Extrae nombres y correos electrónicos
Descripción general:
En este desafío, usarás la API de JSONPlaceholder para obtener los comentarios de una publicación concreta (la publicación con ID 1). Tu tarea es extraer los campos "name" y "email" de cada comentario y registrar en el log los datos extraídos.
Objetivo:
Escribe un job que obtenga los comentarios de la publicación con ID 1, extraiga los campos "name" y "email" de cada comentario y registre en el log los datos extraídos.
Requisitos:
- Conocimientos básicos de JavaScript.
- La CLI de OpenFn instalada en tu computadora.
Tareas:
-
Obtén los comentarios de la publicación:
- Agrega una operación que obtenga todos los comentarios de la publicación con ID 1 de la API de JSONPlaceholder.
-
Extrae el nombre y el correo electrónico:
- Escribe una función que extraiga los campos "name" y "email" de cada comentario.
-
Registra los datos extraídos:
- Muestra en la consola los datos extraídos (nombre y correo electrónico) de cada comentario.
Lista de verificación:
- Obtuviste los comentarios de la publicación con ID 1.
- Escribiste una función que extrae "name" y "email" de los comentarios.
- Mostraste en la consola los datos extraídos.
🏆 Controla los mensajes de error
Depura qué causa un error en la siguiente línea de código y muestra el mensaje de error.
// Get post where id is 180
get('posts/180');
🏆 Transformación y limpieza de datos
Descripción general:
En este desafío, usarás métodos globales de arrays de JavaScript, en concreto
Array.reduce, Array.filter o Array.map, para crear una serie de
operaciones que obtengan publicaciones y las filtren por ID de usuario.
Objetivo:
Escribe un job que obtenga las publicaciones de un ID de usuario concreto, 1.
Requisitos:
- Usa la API de JSONPlaceholder
https://jsonplaceholder.typicode.com. - Instala la última versión del adaptor http.
openfn repo install @openfn/language-http
Tareas:
-
Crea el archivo:
- Crea un archivo llamado
getPosts.jspara tu job.
- Crea un archivo llamado
-
Obtén todas las publicaciones:
- Agrega la primera operación para obtener todas las publicaciones. Usa la API indicada o cualquier otra fuente que elijas que ofrezca una lista de publicaciones.
-
Filtra las publicaciones por ID:
- Agrega una segunda operación con una función que filtre las publicaciones
por ID de usuario. Puedes usar
Array.filtero cualquier otro método adecuado.
- Agrega una segunda operación con una función que filtre las publicaciones
por ID de usuario. Puedes usar
-
Obtén las publicaciones del ID de usuario 1:
- Usa la función de la segunda operación para filtrar las publicaciones del ID de usuario 1.
Lista de verificación:
- Creaste el archivo
getPosts.js. - Obtuviste todas las publicaciones.
- Escribiste una función que filtra publicaciones por ID de usuario.
- Obtuviste las publicaciones del ID de usuario 1.