CursosEmpresasBlogLiveConfPrecios

Consumiendo API

Clase 21 de 26 • Curso de Asincronismo con JavaScript

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    Lo que aprenderás en este curso

    Lo que aprenderás en este curso

    01:34 min
  • 2
    Qué es el asincronismo

    Qué es el asincronismo

    09:25 min
  • 3
    Event Loop

    Event Loop

    11:13 min
  • 4
    Iniciando a programar con JavaScript

    Iniciando a programar con JavaScript

    02:59 min

Callbacks

  • 5
    Configuración

    Configuración

    10:23 min
  • 6
    Qué son los Callbacks

    Qué son los Callbacks

    14:56 min
  • 7

    Playground: Ejecuta un callback con 2s de demora

  • 8
    XMLHTTPRequest

    XMLHTTPRequest

    15:03 min
  • 9
    Fetch data

    Fetch data

    17:44 min
  • 10
    Callback hell

    Callback hell

    06:56 min

Promesas

  • 11
    Qué son las promesas

    Qué son las promesas

    11:54 min
  • 12

    Playground: Crea una función de delay que soporte asincronismo

  • 13
    Fetch

    Fetch

    16:12 min
  • 14
    Fetch POST

    Fetch POST

    14:55 min

Async Await

  • 15
    Funciones asíncronas

    Funciones asíncronas

    10:07 min
  • 16
    Try and catch

    Try and catch

    11:51 min
  • 17

    Playground: Captura el error de una petición

  • 18
    ¿Cómo enfrentar los errores?

    ¿Cómo enfrentar los errores?

    03:42 min

Generadores

  • 19
    Generators

    Generators

    08:06 min

Proyecto CV

  • 20
    Proyecto del curso

    Proyecto del curso

    11:48 min
  • 21
    Consumiendo API

    Consumiendo API

    Viendo ahora
  • 22
    Desplegando el proyecto

    Desplegando el proyecto

    16:45 min
  • 23

    Playground: Crea una utilidad para hacer peticiones

Nunca pares de crear

  • 24
    Conclusión

    Conclusión

    03:09 min
  • 25
    ¿Qué camino tomar para seguir aprendiendo?

    ¿Qué camino tomar para seguir aprendiendo?

    04:12 min
  • 26

    Autoevaluación de Proyecto: Creación de Landing Page

    00:44 min
  • Tomar el examen del curso
    • Maria Gabriela Rodriguez Cuevas

      Maria Gabriela Rodriguez Cuevas

      student•
      hace 3 años

      📀 𝗖𝗹𝗮𝘀𝗲 #𝟭𝟴: 𝗖𝗼𝗻𝘀𝘂𝗺𝗶𝗲𝗻𝗱𝗼 𝗔𝗣𝗜 𝟭𝟴/𝟮𝟭 📀 . 🔧 ++Continuando con la lógica de la landing:++ .

      • Entra a https://rapidapi.com/ y creamos una cuenta al dar click en ++Sign Up++ y seguir los pasos.
      • El profesor usará la API de youtube, así que en el buscador puedes colocar la API que quieras usar. La versión de la API de youtube que vamos a usar es ++YouTube V3++.
      • Una vez seleccionada la API, nos mostrará 3 columnas con los servicios y herramientas que están disponibles para la API, para el ejemplo se selecciona Channel Videos para obtener los últimos vídeos publicados. En la columna central, se debe indicar la id del canal que queremos mostrar en la landing, éste se obtiene en la url de youtube después de channel/, por ejemplo para el canal de youtube del profesor: https://www.youtube.com/channel/UC9k0tTsh_qStx0HPuPftSsg el id del canal es UC9k0tTsh_qStx0HPuPftSsg ese es el que se debe pegar en el parámetro ++channeld++.
      • Más abajo, se puede configurar el máximo de vídeos que se desea obtener (máximo hasta 50), para el ejemplo se colocó 9.
      • En la tercera columna, se selecciona en la lista el lenguaje de programación y el método que se quiere usar, en este caso: JavaScript → fetch con ésto aparecerá la plantilla del código.
      • Para visualizar la salida al testear la plantilla, en la columna del medio al dar click en Test Endpoint, la pestaña Results se activa y podemos conocer cada uno de los elementos de los objetos, esa información nos será útil para nuestro el código.
      • Copiar la plantilla e ir al editor VSC en la ruta src/assets y pegarlo en main.js
      • La url que se pasa por argumento a la función fetch, la cambiamos al inicio del código para declarar la constante API:
      const API = 'https://youtube-v31.p.rapidapi.com/search?channelId=UCw05fUBPwmpu-ehXFMqfdMw&part=snippet%2Cid&order=date&maxResults=9';

      La variable options si la dejamos igual, tal cual como lo muestra rapidapi:

      const options = { method: 'GET', headers: { 'X-RapidAPI-Key': '6540473ff4mshfbdbb244ab22f99p10c708jsnfd294791e746', 'X-RapidAPI-Host': 'youtube-v31.p.rapidapi.com' } };

      Como vamos a usar el ++asyn/await++, borramos el código de fetch estructurado con then y catch. En lugar de ello, usamos la lógica que hicimos en ejemplos anteriores:

      //Lógica de async: ir por los datos, luego esperar por ellos y finalmente retornarlos hacia el usuario async function fetchData(urlApi) { //siempre async antes de function const response = await fetch(urlApi, options); //hacemos uso del fetch() y solo por esta vez le pasamos la opciones const data = await response.json(); //estructura de los datos transformandolos en json return data; //retorna la información de la API que estamos solicitando }

      Ahora vamos usar un nuevo concepto: ++una función que se invoca a sí misma++; con JavaScript podemos tener funciones anónimas que permitan llamarse automáticamente, la estructura cuenta con la palabra reservada **async **y con funciones arrows:

      (async () => { //Dentro implementamos la lógica necesaria para hacer el llamado a la API, obtener los elementos y mostrarlos en html //Se implementa try y catch try{ } catch { } })();

      Dentro de try{} estará el llamado de la API y el template de html para interpretar los datos a iterar por cada objeto, en este caso, cuando analizamos la salida de la API en rapidapi, hay una jerarquía de los datos, están los 9 “items” del 0 al 8 para la posición de cada vídeo, luego el “snippet” de cada item, luego “thumbnails” y éste a su vez los tamaños de la imagen (nos interesa con la más alta resolución “high”), también nos interesa mostrar la descripción “description” y nombre “title” de cada vídeo:

      (async () => { try { const videos = await fetchData(API); let view = ` ${videos.items.map(video => ` <div class="group relative"> <div class="w-full bg-gray-200 aspect-w-1 aspect-h-1 rounded-md overflow-hidden group-hover:opacity-75 lg:aspect-none"> <img src="${video.snippet.thumbnails.high.url}" alt="${video.snippet.description}" class="w-full"> </div> <div class="mt-4 flex justify-between"> <h3 class="text-sm text-gray-700" style="color:white;"> <span aria-hidden="true" class="absolute inset-0"></span> ${video.snippet.title} </h4> </div> </div> `).slice(0, 4).join('')} `; content.innerHTML = view; } catch { } })();
      • Si quieres saber más del ++método map++, en el enlace hay ejemplos: aquí
        • Para el ++método slice++: aquí
        • Para el ++método join++: aquí
      • En index.html buscamos el comentario de <!-- content --> para agregar el id de **++content ++**y pueda mostrar los vídeos en la landing, para ello, borramos el div después del comentario, incluyendo su contenido, queda así:
      <div class="mt-6 grid grid-cols-1 gap-y-10 gap-x-6 sm:grid-cols-2 lg:grid-cols-4 xl:gap-x-8" id="content"> <!-- content --> </div>

      Y ahora para que pueda leer la lógica de main, dado que el id lo llamamos content, en el archivo main agregamos la referencia content:

      const content = null || document.getElementById('content');
        Lucas Aristizábal

        Lucas Aristizábal

        student•
        hace 3 años

        es normal que la parte donde ya pones la info en el innerHTML o el view te lo ponga como string? siento que me está generando un error por eso y no he podido solucionarlo ayudita?

        Maria Gabriela Rodriguez Cuevas

        Maria Gabriela Rodriguez Cuevas

        student•
        hace 3 años

        Hola Lucas, no había visto tu mensaje ¿te sigue generando el mismo error?

      Juan Nicolás Cabrera

      Juan Nicolás Cabrera

      student•
      hace 3 años

      puede que haya mejorado este curso a comparacion con el anterior pero lo tienen que volver a hacer una tercera vez, en español

        Yuliam Rivera González

        Yuliam Rivera González

        student•
        hace 3 años

        the same jajajajajaja

        Alberto Depablos

        Alberto Depablos

        student•
        hace 2 años

        JAJAJAJAJAJA

      Yohana Alexandra Triviño Vasquez

      Yohana Alexandra Triviño Vasquez

      student•
      hace 3 años

      Una buena sugerencia para platzi es que los cursos siempre piensen que estan hablando a gente que no sabe nada, en particular hago muchos cursos y leo y me documento pero a veces no entiendo lo que el profe explica y hay algunos profes que se me dificulta coger la linea de lo que hacen. El curso de API REST con express fue super bueno, el profesor alli me aclaro muchisimos vacios que creo que tenia, este curso en particular tambien ha sido muy bueno pero hay momentos donde se pierde uno con el profe, es un punto por mejorar porque con el profe oscar en los cursos que he iniciado me ha pasado. He notado que el profe tiene que leer mucho algun telepronter, tal vez sea eso, cuando uno enseña algo que domina y mas conversadito fluye mejor.

      Anderson Parra

      Anderson Parra

      student•
      hace 2 años

      solo quiero terminar este curso para buscar otro que me explique mejor.

      Jesús Álvarez

      Jesús Álvarez

      student•
      hace 3 años

      Si no tienes imagen para colocar en el hero pueden usar este enlace https://picsum.photos/500 les dará una imagen distinta cada vez que recarguen la página

      Kalet Adonay Chavez Alas

      Kalet Adonay Chavez Alas

      student•
      hace 3 años

      funciones anonimas autoejecutables!!!

        Andres Prieto

        Andres Prieto

        student•
        hace 3 años

        Checa esto, https://developer.mozilla.org/es/docs/Glossary/IIFE

      Andres Gallego

      Andres Gallego

      student•
      hace 3 años

      Les recomiendo hacer una copia del resultado de la API, pues al final si les pasa algún error o si están haciendo mejoras les va a sacar un status of 429 (Too Many Requests). Esto es porque la API tiene un límite de 40 peticiones MENSUALES,

      JUAN DAVID MARIN URIBE

      JUAN DAVID MARIN URIBE

      student•
      hace 3 años

      Este es el codigo de HTML que hace falta en el minuto 13:20

      <div class="group relative"> <div class="w-full bg-gray-200 aspect-w-1 aspect-h-1 rouded-md overflow-hidden group-hover:opacity-75 lg:aspect-none" > <img src="" alt="" class="w-full" /> </div> <div class="mt-4 flex justify-between"> <h3 class="text-sm text-gray-700"> <span aria-hidden="true" class="absolute inset-0"></span> Title </h4> </div> </div>
        Julian David Alzate Cuervo

        Julian David Alzate Cuervo

        student•
        hace 3 años

        héroe sin capa

        Israel Churata

        Israel Churata

        student•
        hace 2 años

        Hay un error al cerrar <h4>, lo estas cerrando con </h5>, lo cual debe ser con el mismo </h4>

      David Rangel

      David Rangel

      student•
      hace 2 años

      Otra forma de averiguar el channel ID es la siguiente: 1. Ingresas al canal de tu elección, en mi caso el de la NASA: https://www.youtube.com/@nasa_es

      2. Le das click a su descripción (señalado con la línea roja):

      3. Das click en compartir canal:
      4. Seleccionas la opción "Copiar ID del Canal"
      Y listo, ¡celebra! Ya tienes el ID de canal.
        Leidy Tatiana Rico Gamboa

        Leidy Tatiana Rico Gamboa

        student•
        hace 6 meses

        muchas gracias yo buscando en google como encontrarlo y no salia Muchas Gracias

      Daniel Velasco

      Daniel Velasco

      student•
      hace 3 años

      Este es el ID de el profesor Oscar ( UC9k0tTsh_qStx0HPuPftSsg )

      German Cavani

      German Cavani

      student•
      hace 3 años

      Aquí esta la API que utiliza el profesor en este video: Youtube V3

      Luis Eduardo

      Luis Eduardo

      student•
      hace 3 años

      Decidi construir mi propia API para poner en practica mis habilidades de backend y tener un portafolio mas completo. Me va a tocar hcaer mucho trabajo :s pero aqui pueden ir viendo el progreso de este proyecto.

      Decidi hacer un blog financiero (estudio finanzas en la universidad) que incluya un blog, seccion de noticias, calculadoras y una seccion de contacto. Deseenme suerte.

      https://github.com/EsquizoDEV/financeBlog

      Tambien ire comentando por aqui algunos avances:

      Dejo el primer avance, super importante primero ir definiendo que queremos que haga nuestra aplicacion, antes de pasar a programar como locos, entonces es lo que estoy haciendo.

      La página tendrá 3 secciones principales, un blog, noticias, una sección de calculadoras y una sección de contacto. El blog, consumirá el contenido principal (texto e imágenes) desde una API construida en NodeJS, express y utilizando una base de datos SQL, esto nos permitirá crear una misma estructura para el frontend del blog y simplemente consumir los datos sin perder el estilo. Para el blog la API tendrá varios niveles, un nivel para obtener información de todos los blogs actuales, que serán utilizados para mostrarse en un carrusel, el API debe responder con información general de cada blog (Blog Nivel 0 Especificacion). También habrá un nivel para obtener a el detalle de un blog, la estructura de respuesta de este request, tiene que ser la correcta para el renderizado adecuado del frontend. En el frontend, nuestro Javascript, necesita saber la estructura de esa entrada de blog, es decir, necesitamos saber el titulo principal, la introducción, la cantidad de subtítulos que hay a lo largo del blog, y los contenidos relativos a cada subtitulo, así también, cada sección puede ir o no acompañada de una imagen, que tendrá que aparecer entre cada cambio de sección. Para ver mejor un ejemplo de respuesta, ir a la especificación de Blog Api Nivel 1. Blog API Nivel 0 especificacion: Rutas, métodos y ejemplos de respuesta: Ruta: api/ V1/blogs Method: GET Res example: [{ “Title”: ”The first entry”, “ShortContent”:”The short content string”, “Date”: 27/05/22, “Id”: “123456” }] Blog API nivel 1 especificación: Ruta: api/v1/blog/:id Method: GET Res example: { “Title”: “Blog title” “MainIMG”: “IMG SRC”, “Intro”: “String intro”, “SubContent”: [{ “Title”: “Subtitle 1”, “Content”: “Content string”, “Image”: “IMG SRC” }] }

      Cecilio Cauich

      Cecilio Cauich

      student•
      hace 3 años

      Para los que igual que un servidor solo tienen un idea no muy clara sobre lo que es una api. Aquí unos links que les puede ayudar a tender mejor. link1 link2

      Gabriela Ramírez

      Gabriela Ramírez

      student•
      hace 3 años

      Me encanta esta clase, es un buen método sin hacer tantos id en el HTML, solo un getElementById y esta todo

        Andres Prieto

        Andres Prieto

        student•
        hace 3 años

        Es buena Práctica usar querySelector(), te facilita la vida

        PD: Para mí Óscar es uno de los mejores instructores de Platzi; cuando vez uno de sus cursos eso suele suceder

      Jeans Pierre Monrroy Caicedo

      Jeans Pierre Monrroy Caicedo

      student•
      hace 3 años

      genial curso

      Jorman Urbina

      Jorman Urbina

      student•
      hace 3 años

      Debemos tener en cuenta que en el ambito laboral necesitaremos buscar informacion de manera inmediata si no la recordamos, aprovechemos los vacios de informacion para buscarla nosotros mismos. somos responsables de nuestro aprendizaje , aunque si , la explicacion esta bastante intensa y poco fluida

      Samuel Suárez

      Samuel Suárez

      student•
      hace 3 años

      Esta clase me volo la cabeza. Hice todo lo que dijo el profesor pero no entendi muy bien el porque de todo eso. No se si es mi culpa o es que el curso va muy rapido... pero me hubiese gustado que explicaran detalladamente el porque de cada cosa en lugar de solo ir al grano

        Andres Dominguez

        Andres Dominguez

        student•
        hace 2 años

        Tranquilo bro, esto es backend, yo igual estaba tratando de implementar una API de typeform para implementar en una App Web que está en construcción (muy a futuro) de un emprendimiento familiar. La metodología de estos cursos es mala la verdad, toca estar buscando, leyendo, estudiando de varios sitios a la vez. Lo cual entendería en una plataforma gratuita, no en una de SUSCRIPCIÓN.

      Fernando Meneses

      Fernando Meneses

      student•
      hace 3 años

      🙋‍♂️ Quiero compartir un link donde resume:

      • Callabacks

      • Promesas

      • Async await

      de manera 👉 ++simple y concreta++ 👈 .

      spoiler. Minuto 11:43 ** ¡funciones anonimas autoejecutables!** hagame el... favor. ++Se dieron garra++. Bien por el profe y su dominio del tema, mal por que los conceptos se asumen que ya "se saben" . Este curso desentona de todos los que he tomado. Mucho tecnisismo y teoria nunca antes vista

      Anthony Quintero

      Anthony Quintero

      student•
      hace 3 años

      Esta plataforma de RapidApi es increible!

      Joaquin Pinto

      Joaquin Pinto

      student•
      hace un año

      ACTUALIZACIÓN OCTUBRE-2024:

      RapidAPI: - Cambió la interfaz para hacer test de la api, ahora es de paga :'(. - El input para poner el channel no reconoce el nuevo formato de channels de youtube, ahora es : @channel, por ejemplo: @platzi. - el formato para conseguir channels en YouTube es rebuscado, un poco complicado.

      CONCLUSIÓN: usen otra API para terminar bien el curso.

    Escuelas

    • Desarrollo Web
      • Fundamentos del Desarrollo Web Profesional
      • Diseño y Desarrollo Frontend
      • Desarrollo Frontend con JavaScript
      • Desarrollo Frontend con Vue.js
      • Desarrollo Frontend con Angular
      • Desarrollo Frontend con React.js
      • Desarrollo Backend con Node.js
      • Desarrollo Backend con Python
      • Desarrollo Backend con Java
      • Desarrollo Backend con PHP
      • Desarrollo Backend con Ruby
      • Bases de Datos para Web
      • Seguridad Web & API
      • Testing Automatizado y QA para Web
      • Arquitecturas Web Modernas y Escalabilidad
      • DevOps y Cloud para Desarrolladores Web
    • English Academy
      • Inglés Básico A1
      • Inglés Básico A2
      • Inglés Intermedio B1
      • Inglés Intermedio Alto B2
      • Inglés Avanzado C1
      • Inglés para Propósitos Específicos
      • Inglés de Negocios
    • Marketing Digital
      • Fundamentos de Marketing Digital
      • Marketing de Contenidos y Redacción Persuasiva
      • SEO y Posicionamiento Web
      • Social Media Marketing y Community Management
      • Publicidad Digital y Paid Media
      • Analítica Digital y Optimización (CRO)
      • Estrategia de Marketing y Growth
      • Marketing de Marca y Comunicación Estratégica
      • Marketing para E-commerce
      • Marketing B2B
      • Inteligencia Artificial Aplicada al Marketing
      • Automatización del Marketing
      • Marca Personal y Marketing Freelance
      • Ventas y Experiencia del Cliente
      • Creación de Contenido para Redes Sociales
    • Inteligencia Artificial y Data Science
      • Fundamentos de Data Science y AI
      • Análisis y Visualización de Datos
      • Machine Learning y Deep Learning
      • Data Engineer
      • Inteligencia Artificial para la Productividad
      • Desarrollo de Aplicaciones con IA
      • AI Software Engineer
    • Ciberseguridad
      • Fundamentos de Ciberseguridad
      • Hacking Ético y Pentesting (Red Team)
      • Análisis de Malware e Ingeniería Forense
      • Seguridad Defensiva y Cumplimiento (Blue Team)
      • Ciberseguridad Estratégica
    • Liderazgo y Habilidades Blandas
      • Fundamentos de Habilidades Profesionales
      • Liderazgo y Gestión de Equipos
      • Comunicación Avanzada y Oratoria
      • Negociación y Resolución de Conflictos
      • Inteligencia Emocional y Autogestión
      • Productividad y Herramientas Digitales
      • Gestión de Proyectos y Metodologías Ágiles
      • Desarrollo de Carrera y Marca Personal
      • Diversidad, Inclusión y Entorno Laboral Saludable
      • Filosofía y Estrategia para Líderes
    • Diseño de Producto y UX
      • Fundamentos de Diseño UX/UI
      • Investigación de Usuarios (UX Research)
      • Arquitectura de Información y Usabilidad
      • Diseño de Interfaces y Prototipado (UI Design)
      • Sistemas de Diseño y DesignOps
      • Redacción UX (UX Writing)
      • Creatividad e Innovación en Diseño
      • Diseño Accesible e Inclusivo
      • Diseño Asistido por Inteligencia Artificial
      • Gestión de Producto y Liderazgo en Diseño
      • Diseño de Interacciones Emergentes (VUI/VR)
      • Desarrollo Web para Diseñadores
      • Diseño y Prototipado No-Code
    • Contenido Audiovisual
      • Fundamentos de Producción Audiovisual
      • Producción de Video para Plataformas Digitales
      • Producción de Audio y Podcast
      • Fotografía y Diseño Gráfico para Contenido Digital
      • Motion Graphics y Animación
      • Contenido Interactivo y Realidad Aumentada
      • Estrategia, Marketing y Monetización de Contenidos
    • Desarrollo Móvil
      • Fundamentos de Desarrollo Móvil
      • Desarrollo Nativo Android con Kotlin
      • Desarrollo Nativo iOS con Swift
      • Desarrollo Multiplataforma con React Native
      • Desarrollo Multiplataforma con Flutter
      • Arquitectura y Patrones de Diseño Móvil
      • Integración de APIs y Persistencia Móvil
      • Testing y Despliegue en Móvil
      • Diseño UX/UI para Móviles
    • Diseño Gráfico y Arte Digital
      • Fundamentos del Diseño Gráfico y Digital
      • Diseño de Identidad Visual y Branding
      • Ilustración Digital y Arte Conceptual
      • Diseño Editorial y de Empaques
      • Motion Graphics y Animación 3D
      • Diseño Gráfico Asistido por Inteligencia Artificial
      • Creatividad e Innovación en Diseño
    • Programación
      • Fundamentos de Programación e Ingeniería de Software
      • Herramientas de IA para el trabajo
      • Matemáticas para Programación
      • Programación con Python
      • Programación con JavaScript
      • Programación con TypeScript
      • Programación Orientada a Objetos con Java
      • Desarrollo con C# y .NET
      • Programación con PHP
      • Programación con Go y Rust
      • Programación Móvil con Swift y Kotlin
      • Programación con C y C++
      • Administración Básica de Servidores Linux
    • Negocios
      • Fundamentos de Negocios y Emprendimiento
      • Estrategia y Crecimiento Empresarial
      • Finanzas Personales y Corporativas
      • Inversión en Mercados Financieros
      • Ventas, CRM y Experiencia del Cliente
      • Operaciones, Logística y E-commerce
      • Gestión de Proyectos y Metodologías Ágiles
      • Aspectos Legales y Cumplimiento
      • Habilidades Directivas y Crecimiento Profesional
      • Diversidad e Inclusión en el Entorno Laboral
      • Herramientas Digitales y Automatización para Negocios
    • Blockchain y Web3
      • Fundamentos de Blockchain y Web3
      • Desarrollo de Smart Contracts y dApps
      • Finanzas Descentralizadas (DeFi)
      • NFTs y Economía de Creadores
      • Seguridad Blockchain
      • Ecosistemas Blockchain Alternativos (No-EVM)
      • Producto, Marketing y Legal en Web3
    • Recursos Humanos
      • Fundamentos y Cultura Organizacional en RRHH
      • Atracción y Selección de Talento
      • Cultura y Employee Experience
      • Gestión y Desarrollo de Talento
      • Desarrollo y Evaluación de Liderazgo
      • Diversidad, Equidad e Inclusión
      • AI y Automatización en Recursos Humanos
      • Tecnología y Automatización en RRHH
    • Finanzas e Inversiones
      • Fundamentos de Finanzas Personales y Corporativas
      • Análisis y Valoración Financiera
      • Inversión y Mercados de Capitales
      • Finanzas Descentralizadas (DeFi) y Criptoactivos
      • Finanzas y Estrategia para Startups
      • Inteligencia Artificial Aplicada a Finanzas
      • Domina Excel
      • Financial Analyst
      • Conseguir trabajo en Finanzas e Inversiones
    • Startups
      • Fundamentos y Validación de Ideas
      • Estrategia de Negocio y Product-Market Fit
      • Desarrollo de Producto y Operaciones Lean
      • Finanzas, Legal y Fundraising
      • Marketing, Ventas y Growth para Startups
      • Cultura, Talento y Liderazgo
      • Finanzas y Operaciones en Ecommerce
      • Startups Web3 y Blockchain
      • Startups con Impacto Social
      • Expansión y Ecosistema Startup
    • Cloud Computing y DevOps
      • Fundamentos de Cloud y DevOps
      • Administración de Servidores Linux
      • Contenerización y Orquestación
      • Infraestructura como Código (IaC) y CI/CD
      • Amazon Web Services
      • Microsoft Azure
      • Serverless y Observabilidad
      • Certificaciones Cloud (Preparación)
      • Plataforma Cloud GCP

    Platzi y comunidad

    • Platzi Business
    • Live Classes
    • Lanzamientos
    • Executive Program
    • Trabaja con nosotros
    • Podcast

    Recursos

    • Manual de Marca

    Soporte

    • Preguntas Frecuentes
    • Contáctanos

    Legal

    • Términos y Condiciones
    • Privacidad
    • Tyc promociones
    Reconocimientos
    Reconocimientos
    Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
    Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
    Logo reconocimientoPrimera Startup EdTech · 2018
    Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
    Logo reconocimientoCEO Mejor Emprendedor del año · 2024
    De LATAM conpara el mundo
    YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads