Qué es Fastify
Fastify es un framework de NodeJS (lado de servidor) que destaca por combinar su gran rendimiento con una gran experiencia para el desarrollador, inspirándose en Hapi o Express, dos de los frameworks más queridos y usados por la comunidad.
Por qué usar Fastify 👍
Podríamos destacar 3 puntos fuertes de Fastify:
- 🔥 Rendimiento: tiene el mejor rendimiento entre los principales frameworks de NodeJS, por lo que puedes procesar más peticiones por el mismo hardware, lo que redunda en menor gasto en infraestructura
- 🧩 Modularidad: hay casi 200 plugins disponibles para cualquier cosa que necesites hacer o añadir en una API
- 👍 Desarrollo fácil: desde código limpio y claro, logger Pino, validación de esquemas JSON o soporte de Typescript, entre otros.
Cómo instalar Fastify 💡
Para instalar Fastify basta con ejecutar:
npm install fastify -s
💡 Recuerda que con -s
se guardará en tu package.json
Si usas yarn, ejecuta:
yarn add fastify
Desarrollo de una API con Fastify 🧑💻
Después de instalarlo como hemos visto en el punto anterior, con el siguiente código tendriamos un endpoint básico:
const fastify = require('fastify')({ logger: true })
fastify.get('/', async (request, reply) => {
return { hello: 'world' }
})
const start = async () => {
try {
await fastify.listen(3000)
} catch (err) {
fastify.log.error(err)
process.exit(1)
}
}
start()
💡 Si arrancamos con node server.js
ya estaría listo y si accedemos a localhost:3000
en el navegador o ejecutamos curl http://localhost:3000
veremos la respuesta
Si deseas el modo bonito de Pino, instala la dependencia pino-pretty
con npm i -s pino-pretty
y cambia la primera línea del ejemplo a:
const fastify = require('fastify')({ logger: { prettyPrint: true } })
Y a partir de aquí, ya es ir añadiendo los endpoints y plugins que necesites según tu proyecto 👍
Desplegando Fastify 🤖
Si uno de los puntos fuertes de Fastify es el rendimiento y el poder reducir el gasto en infraestructura, podemos potenciarlo si usamos un proveedor como Clouding.io y tener nuestra API disponible por 3 euros al mes, por ejemplo. Menos de 4 euros incluyendo IVA.
Creamos una cuenta o entramos aquí en la que tengamos y pulsamos el botón naranja de abajo para crear un servidor:
Después elegimos la configuración del servidor. Aquí elijo Ubuntu Server 20.04 y la mínima configuración: 1/2 Core + 1 GB RAM + 5 GB SSD, suficiente para ejecutar nuestra API basada en Fastify.
Por supuesto, puedes elegir cualquier otro sistema operativo o versión, así como aumentar cada parámetro: nº de cores de CPU, GB de SSD y proporción de 2 o 4 GB RAM por core de CPU.
Por último, pulsamos el botón Enviar de abajo y ya tenemos nuestro servidor en Clouding.io 🚀
Como puedes ver, antes de crearlo puedes asegurarte del precio con y sin IVA, útil para saber cuánto pagarás a final de mes en función de la configuración que hayas elegido. Asi evitas sorpresas 🙂
Con los datos de acceso (IP, usuario/contraseña o nuestro PEM que hayas elegido), nos conectaremos al VPS vía consola para el siguiente paso.
💡 Si no tienes claro cómo, ya escribí sobre Cómo conectarse por SSH via terminal.
En este punto, ya tienes tu API con Fastify y tu servidor, decide cómo desplegar y arrancar tu código como prefieras: con git/node, con PM2, etc.
¡Boom! ⚡️ Ya tienes tu API con Fastify corriendo en Clouding con un gran rendimiento y precio, deja un comentario con tus preguntas o comentarios