Crear una REST API escalable y sostenible con Typescript y Express
Node.js es una plataforma que permite ejecutar código JavaScript del lado del servidor. Es altamente eficiente y escalable, lo que lo convierte en una excelente opción para construir aplicaciones web y APIs RESTful.
¿Qué es una API RESTful?
Una API RESTful (Representational State Transfer) es una arquitectura de software que permite a los sistemas comunicarse entre sí a través del protocolo HTTP. Utiliza métodos HTTP como GET, POST, PUT y DELETE para manipular recursos en un servidor.
Node.js y Express
Node.js es una plataforma que se basa en el motor de JavaScript V8 de Google Chrome. Permite ejecutar código JavaScript del lado del servidor, lo que lo hace ideal para construir aplicaciones web y APIs RESTful.
Express es un framework web minimalista para Node.js que proporciona una serie de utilidades y características para facilitar la creación de aplicaciones web y APIs RESTful.
Typescript
Typescript es un lenguaje de programación desarrollado y mantenido por Microsoft. Es un superconjunto de JavaScript que agrega tipado estático y características adicionales a la sintaxis del lenguaje.
Al utilizar Typescript en combinación con Node.js y Express, obtenemos un código más seguro y mantenible, ya que los errores de tipo se detectan en tiempo de compilación en lugar de en tiempo de ejecución.
Creando una REST API con Typescript y Express
Para crear una REST API con Typescript y Express, siga los siguientes pasos:
- Instale Node.js en su sistema si aún no lo ha hecho.
- Cree una carpeta para su proyecto e inicialícelo con npm para crear el archivo package.json.
- Instale los paquetes necesarios, como Express y Typescript, ejecutando el siguiente comando en la terminal:
npm install express typescript
- Cree un archivo de configuración de Typescript llamado tsconfig.json en el directorio raíz de su proyecto y agregue la configuración necesaria.
- Cree un archivo index.ts que será el punto de entrada de su aplicación. Importe Express y configure las rutas y controladores necesarios.
- Ejecute su aplicación utilizando el comando
npm start
y pruébela utilizando herramientas como Postman o cURL.
Conclusión
Node.js, junto con Typescript y Express, ofrece una poderosa combinación para crear APIs RESTful escalables y sostenibles. Al utilizar Typescript, podemos agregar tipado estático a nuestro código, lo que nos ayuda a detectar errores en tiempo de compilación y hacer nuestro código más seguro y mantenible.
¡Prueba Node.js junto con Typescript y Express para crear tus propias APIs RESTful y experimenta sus beneficios en tus aplicaciones!
🤑 𝐂𝐔𝐑𝐒𝐎𝐒 𝐏𝐀𝐆𝐎𝐒
├𝘼𝙉𝙂𝙐𝙇𝘼𝙍 principiantes ⮕ https://link.codigoencasa.com/PROMO-INICIAL
├𝙉𝙊𝘿𝙀 principiantes ⮕ https://link.codigoencasa.com/NODE
└ 𝘼𝙒𝙎 𝘽𝙖𝙨𝙞𝙘𝙤 desde cero ⮕ https://link.codigoencasa.com/AWS
40:19 Ojo, hay que declarar el app.use(express.json()) ANTES del app.use(routes) de lo contrario simplemente no sera capaz de consumir el json que se le envía, él lo hace bien en el video pero creo que no queda muy claro lo importante que es el orden en ese caso. Espero haberle ahorrado algo de tiempo a alguien :'D
Hola, me confundi apenas llego la parte de DB_URI, porque no se como conectar con MongDB, es decir, lo he descargado, luego hice la URL, pero no se que mas hacer, no se como conectar al APP para que no me de errores porque constantemente despues de ejecutar el codigo. se cuelga el nodemon y dice que es error de server y asi. la verdad me gustaria tener ayuda de tu parte saludos desde vnzla
Hola Leifer, entonces si antes de almacenar los datos en la BD, necesito hacer cálculos u otras consultas esta lógica donde debería ir??
Que crack, hace unos meses decidí hacer un proyectos freelance, pero no sabia nada de back, con tus cursos he aprendido de todo y aplicarlo en proyectos reales
Buenos la hora que sea donde estas, seguí el video, verifique en github y no hay manera que funciones, no se si esta embasurado pero ni siquiera el primer get del video funciona ahora, con "/", "/items" no hace nada de nada, en cambio el Rest API en JS funciona perfecto. Por favor si tienes alguna idea te lo agradezco en el alma, ya tengo varias noches perdidas en el mismo loop. Otro ejemplo 'dbConnect' is declared but its value is never read.ts(6133) en el controlador de items, por supuesto es obvio pero si lo comparo con el código en github esta igualito entonces no se por donde viene esa advertencia. Si quieres ver el código completo el original es el tuyo, la única diferencia es el schema y el nombre del modelo Saludos
dijiste que quería un comentario, aquí lo tienes esta de maravilla el tuto, super intuitivo la verdad.
pregunta: typescript ts-node y nodemon no deberían ser instalados en cada proyecto como devDependencies??
Excelente tutorial maestro, todo super entendible, me funciono a la perfección!
Gracias Leifer
2:38:12 en mis tiempos todos los programadores éramos felices usando los cpanel de los servidores que se contrataban anual, mensual etc… QUE AÚN EXISTEN!!!, con interfaz gráfica y todo bien intuitivo, sencillo y ordenado, incluso podías usar filezilla en el caso que no te gustara el administrador de archivos integrado en el cpanel. Así de buena era la vida durante años!!!! De un momento a otro apareció una cosa llamada amazon (q para mí sigue siendo tan solo una tienda de la cual nunca he comprado ni pienso comprar nada, NI LA RECOMIENDO!), google cloud y otros….. con sus servidores extraños por consola y no se cuantas miles de configuraciones imposible de sabérselas todas… y el resultado es q ahora tenemos un mundo empresarial que cree q necesita aws sí o sí y que si no lo tienen están en nada. Obligando a los programadores a aprender una cosa q no tiene nada q ver con la programación, pero q muchas empresas ignorantes de esto, te califican por ahí, o incluso en una entrevista laboral, pasas las pruebas, las actitudes etc… pero no sabes aws? ahh bueno, ahora ya no te pagamos el sueldo de un senior si no de un semi senior o incluso menos
no he visto a nadie q aprenda eso de aws por youtube, siempre hay 1 y mil variantes por la cual no se q configuración ya no es igual en tu servidor y entonces el ejemplo presentado ya no sirve para tu caso
nadie quiere mostrar como usar multer para múltiples archivos por petición. por q será?
En mi controlador tengo una request extendida asi como en mi middleware de jwt pero me da un error al poner el middleware en el endpoint o rutas , me da el aviso de que no acepta request extendida que espera una Request como tal , alguna idea 😅
ERROR 26:48
Router.use() requires a middleware function
causado por la línea :
router.use(`/${cleanName}` );
Estimado, muy agradecido de tu curso ya que buscaba herramienta alternativa a Sprint Boot la cual consumiera menos recursos de servidor y tu video me ayudo a implementarlo. Gracias.
Muchas gracias Leifer!! Por alguna razón no me tomaba el remove en el servicio pero con findOneAndDelete lo pude solucionar. Saludos!!
¿Aquellxs?, un error ortográfico de ese calibre deja mucho que pensar si es ignorancia o ideología.
Hola! Genial el tuto, pero tengo un error que no sé como resolver, luego de hacer npm run build y que me cree la carpeta dist hago npm run start y se conecta aparentemente sin errores pero al utilizar el thunder client no me permite utilizar ninguna ruta, ni login, ni register, ni get, nada.. me aparece la siguiente respuesta : Status : 404 Not Found Response : <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot POST /auth/login</pre>
</body>
</html>
alguien tiene idea por qué puede ser? GRACIAS!
¿Programa de becas? me interesa
Muchas gracias Leifer completísimo y super claro. Ideal para aclarar y refrescar conceptos