Los APIs se han convertido en la pieza fundamental de todas las aplicaciones. Detrás de cada aplicación existe un API que permite guadar, obtener y manipular información.
Esto representa una oportunidad enorme para los desarrolladores que sean capaces de crear APIs sobre los cuales apoyar sus aplicaciones.
Precisamente eso es lo que vas a aprender en este curso. Todas las técnicas de la ingeniería de software moderna para construir APIs seguros, confiables y robustos.
¿Qué voy a aprender?
El objetivo del curso es construir un API capaz de soportar cientos de miles de usuarios. Vamos a utilizar las prácticas modernas para garantizar que el código sea robusto, extensible y seguro.
Vamos a comenzar desde cero, y poco a poco vamos a ir añadiendo funcionalidades al API. El curso esta compuesto por las siguientes secciones:
⚙️ Fundamentos de un API
En esta sección vamos a crear la versión inicial de nuestro API. Vamos a entrar en detalle en:
🔍 Validación de data
¿Cómo hacemos para que la data que procesamos este limpia? ¿Cómo protegemos nuestro servidor de data que es incorrecta?
Si eres como yo, te aburre la validación de datos. Odio tener que revisar que cada parámetro cumpla con ciertas reglas. ¡Es muy fácil cometer errores de validación!
Te voy a enseñar un módulo fantástico que hace que la validación de datos sea simple y fácil. Me atrevo a decir que hasta divertida.
📜 Configuración y uso de un logger
¿Cuántas veces has utilizado console.log() para encontrar un error? Ese es el concepto básico de “loggear" información.
Ahora, ¿Qué ocurre cuando el API está en producción y hay miles de personas haciendo llamadas por minuto?
¿Cómo podemos analizar lo que esta pasando en el servidor? ¿Cómo podemos detectar errores y problemas?
La respuesta es un logger, el cuál nos da acceso a lo que esta ocurriendo en tiempo real y nos permite hacer auditorías para entender porque hubo una falla o problema. Te voy a enseñar como implementarlo en tus aplicaciones.
🔒 Autenticación básica con HTTP
¿Sabías que el protocolo HTTP soporta un protocolo básico de seguridad de usuario/contraseña?
Esta es la manera más básica de realizar autenticación y no requiere de una base de datos ni de cookies. ¡Es súper interesante!
Te voy a mostrar como implementarla para que aprendas a proteger tus rutas de manera rápida y sencilla.
🔐 Autenticación con JWT
¿Cómo hacemos para que el API reconozca quién esta haciendo la llamada? ¿Cómo limitamos el tiempo de acceso?
Te voy a enseñar la forma más moderna de autenticar usuarios utilizando JSON Web Tokens. Es una manera novedosa de autenticar, que ha sido posible gracias a los avances en el mundo de la criptografía.
Vas a aprender a crear tokens y anexarlos a todas las llamadas.
🛠 Ambientes de ejecución
¿Te ha pasado que tu aplicación funciona en tu computadora pero cuando la subes a un servidor no funciona?
Esto se debe a los ambientes de ejecución.
Te voy a enseñar las técnicas para diseñar aplicaciones que pueden ser ejecutadas en ambos ambientes sin tener que pasar años configurando archivos. La transición de un ambiente a otro, va a ser rápido y sencillo.
📚 Integración con Base de datos
En esta etapa vamos a comenzar a persistir la data de nuestro API en MongoDB. Vamos a estudiar todas las implicaciones de tener una base de datos y como manejar operaciones asíncronas utilizando promesas y async/await.
🚫 Manejo de errores en un sistema de producción
¿Qué pasa cuando tu aplicación encuentra un error? ¿Se cae el proceso y tienes que ir manualmente a restaurar la aplicación? ¿Qué ocurre si hay miles de personas y servicios dependiendo de la estabilidad de tu sistema?
Los errores son una constante en el mundo del software. Sabemos que van a ocurrir. La pregunta es ¿Cuándo ocurran cómo los manejamos para garantizar la estabilidad de la aplicación?
Eso es precisamente lo que vamos a responder en esta sección. Vamos a implementar estrategias para manejar errores.
✅ Tests de integración
Cuando haces cambios a tu aplicación ¿Cómo pruebas que estos cambios fueron correctos? ¿Pruebas manualmente que todo funciona? ¿Cuanto tiempo te toma esta tarea?
Te voy a enseñar a ahorrar una cantidad de tiempo ENORME utilizando tests de integración.
Olvídate de las pruebas manuales. Vamos a automatizar el proceso que garantiza que los cambios fueron exitosos, y que el sistema funciona.
¿Quién es el profesor?
Ingeniero de software
Llevo 5 años desarrollando productos para Amazon en Toronto, Canadá. Mi enfoque ha sido principalmente en servicios, pero también he trabajado en el desarrollo de sistemas operativos. Actualmente soy parte de un equipo responsable de un producto de subscripción orientado a niños llamado Amazon Kids. En mi día a día trabajo mucho con Java, pero mi lenguaje favorito es JavaScript.
Yo entiendo a profundidad lo que significa ser un principiante en el mundo del desarrollo de software. La cantidad de obstáculos que uno enfrenta al principio es aplastante. Eso es parte de lo que me motiva a crear cursos y enseñar - quiero hacer que aprender a desarrollar software sea más fácil.
Además de la programación tengo una gran pasión por el deporte. He corrido 6 maratones y soy un adicto de la escalada en roca.
¿Listo para empezar?
¿Tienes dudas? 👉Contáctame
Preguntas Frecuentes
¡No! Sin embargo, esperamos que domines los fundamentos de la programación (variables, condicionales, loops, funciones, objetos, etc). Explico todo muy detalladamente en el curso. No me verás instalar 1000 dependencias y copiar y pegar montones de código.
En este curso he condensado las lecciones que he aprendido a lo largo de mi carrera en compañías como Amazon. Te voy a enseñar conceptos y herramientas que he utilizado durante varios años para crear productos usados por miles de usuarios.
Vas a aprender toda una serie de conceptos y técnicas que te ayudarán a escribir APIs y servicios web de altísima calidad.
Al final de este curso vas a entender todos los requisitos que son necesarios para tener código en producción que sea seguro, confiable y robusto.
Los pagos de Appdelante son procesados por Shopify. Nosotros no tenemos acceso al número de tu tarjeta de crédito o cuenta de PayPal.
La pólitica de Appdelante es que si no te gusta el curso, te devolvemos tu dinero.