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:
simplificar la lógica de enrutamiento con cadenas de ruta similares a las de Express;
definir los parámetros de ruta;
gestionar las cookies;
trabajar con parámetros de búsqueda;
controlar el flujo de una petición con las funcionalidades de software intermedio y software intermedio para la gestión de errores;
manipular los encabezados Vary y Surrogate-Key de forma más sencilla;
¡y mucho más!
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:
En las peticiones destinadas a
/base64/[algo]
:leer un segmento de la ruta de la URL;
escribirlo en una cookie;
descodificarlo y ponerlo en el cuerpo de la respuesta;
devolver un estado 500 si falla la descodificación e incluir el mensaje de error en el cuerpo de la respuesta;
reenviar a un origen todas las peticiones destinadas a
/status/[cualquiera]
;enviar respuestas
405
(Method Not Allowed) o404
(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.