Escribe menos y gana en productividad en el edge: presentamos expressly

¿Alguna vez te has planteado qué pasaría si Compute@Edge tuviese un funcionamiento similar a otros entornos donde ya sabes manejarte a la perfección? Pues ahora esto es posible gracias a expressly, la nueva capa de enrutamiento para las aplicaciones JavaScript que funcionan con Compute@Edge, de Fastly. Hemos creado un entorno ligero y minimalista, y nos hemos inspirado en el conocido entorno Express, de Node.js.

Compute@Edge es un entorno de bajo nivel que permite a los desarrolladores iterar de forma muy rápida con bibliotecas de este tipo y con el lenguaje de programación que prefieran. Por ejemplo, hace poco mi compañero Kailan hizo algo parecido con una biblioteca de lenguaje de marcado Edge Side Includes de Rust.

Gracias a expressly, puedes dedicar toda tu atención a la lógica de tu negocio y te será muy sencillo familiarizarte con Compute@Edge cuando lo uses con JavaScript. Además, podrás utilizar nuevas funcionalidades que te resultarán de gran utilidad:

Escribe menos y gana en productividad

Si les preguntas, muchos de mis compañeros coincidirán en que una de las cosas que más me gusta es eliminar grandes cantidades de código. De hecho, mientras reescribía algunos ejemplos de código en el Developer Hub de Fastly con expressly, notaba cómo se me iba alegrando el día.

Para que te hagas una idea de lo que se siente al escribir código con expressly para crear aplicaciones para Compute@Edge, he inventado el caso hipotético de una aplicación que presenta los siguientes requisitos: 

  1. En las peticiones destinadas a /base64/[algo]:

    1. leer un segmento de la ruta de la URL;

    2. escribirlo en una cookie;

    3. descodificarlo y ponerlo en el cuerpo de la respuesta;

    4. devolver un estado 500 si falla la descodificación e incluir el mensaje de error en el cuerpo de la respuesta;

  2. reenviar a un origen todas las peticiones destinadas a /status/[cualquiera]

  3. enviar respuestas 405 (Method Not Allowed) o 404 (Not Found) en cualquier otro caso, según corresponda. 

Ahora veamos cómo habría que implementar todo esto sin usar expressly:

Y así es como se implementaría la misma lógica de aplicación con expressly:

Es maravilloso, ¿verdad? Situaciones tan complejas como la que acabo de plantear se convierten en tareas mucho más livianas gracias al enlazador de rutas, al analizador sintáctico de parámetros de rutas integrado y al software intermedio de gestión de errores de expressly. ¡Tienes que probarlo!

Empieza a usar expressly

Si no has configurado aún Node.js ni un servicio de Compute@Edge escrito con JavaScript, puedes consultar primero este enlace para aprender a hacerlo.

Instala expressly

Puedes instalar expressly desde el registro npm:

npm i @fastly/expressly

Crea tu primera aplicación con expressly

Reemplaza el contenido del src/index.js de tu aplicación de Compute@Edge por lo siguiente:

import { Router } from "@fastly/expressly";
const router = new Router();
router.get("/", async (req, res) => {
return res.send("Hello world!");
});
router.listen();

Pruébalo

Inicia la aplicación de manera local:

fastly compute serve

Así, tu servicio se iniciará en http://localhost:7676.

¿Lo tienes todo listo para empezar?

Ya está disponible la versión de prueba de @fastly/expressly@1.0.0-alpha.x para desarrolladores. Si quieres encontrar algo de inspiración, también puedes echar un vistazo a nuestra colección de ejemplos de código creados con expressly en el Developer Hub de Fastly.

¿Te apetece probarlo mejor por tu cuenta? Entonces clona el segundo «fiddle» de este artículo y úsalo con tu propio origen sin crear una cuenta de Fastly. Cuando hayas terminado y quieras publicar un servicio global completo, te recomiendo que te registres en la versión de prueba de Compute@Edge y empieces a usar expressly directamente.

Dora Militaru
Developer Relations Engineer
Fecha de publicación:

3 min de lectura

Comparte esta entrada
Dora Militaru
Developer Relations Engineer

Dora es Developer Relations Engineer en Fastly. Hizo sus pinitos como desarrolladora creando un sitio web de noticias de escala mundial y trabajó la compasión liderando equipos de ingeniería de fiabilidad de sitios y de protección de datos. Desde su diminuta mesa de cocina en Londres, sueña con ayudar a que la web sea más rápida, segura y fiable —mejor, a fin de cuentas— para todo el mundo.

¿List@ para empezar?

Ponte en contacto o crea una cuenta.