CursosEmpresasBlogLiveConfPrecios

Configuración del entorno de desarrollo

Clase 3 de 17 • Curso de API REST con Javascript: Ejemplos con APIs reales

Clase anteriorSiguiente clase

Contenido del curso

Presentación del proyecto: PlatziMovies

  • 1
    TheMovieDB: análisis de su API

    TheMovieDB: análisis de su API

    07:15 min
  • 2
    Bocetos en papel y diseño en Figma

    Bocetos en papel y diseño en Figma

    08:05 min

Configuración inicial y maquetación del proyecto

  • 3
    Configuración del entorno de desarrollo

    Configuración del entorno de desarrollo

    Viendo ahora
  • 4
    Maquetación del proyecto: HTML y CSS

    Maquetación del proyecto: HTML y CSS

    18:34 min

Consumiendo la API

  • 5
    Lista de películas en tendencia

    Lista de películas en tendencia

    16:41 min
  • 6
    Lista de categorías

    Lista de categorías

    10:32 min
  • 7
    Migración a Axios

    Migración a Axios

    07:18 min

Navegación

  • 8
    Location y hash navigation

    Location y hash navigation

    17:17 min
  • 9
    Mostrando y ocultando secciones

    Mostrando y ocultando secciones

    22:05 min
  • 10
    Error: carga duplicada de datos

    Error: carga duplicada de datos

    06:30 min

Views

  • 11
    Filtrando películas por categoría

    Filtrando películas por categoría

    21:38 min
  • 12
    Retos: scrollTop y DRY

    Retos: scrollTop y DRY

    11:13 min
  • 13
    Buscador de películas

    Buscador de películas

    11:10 min
  • 14
    Retos: historial de navegación y página de tendencias

    Retos: historial de navegación y página de tendencias

    06:19 min
  • 15
    Endpoint de detalles de una película

    Endpoint de detalles de una película

    18:55 min
  • 16
    Lista de películas recomendadas

    Lista de películas recomendadas

    07:36 min

Próximos pasos

  • 17
    Toma el Curso Profesional de Consumo de API REST con JavaScript

    Toma el Curso Profesional de Consumo de API REST con JavaScript

    02:19 min
Tomar examen

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
        Oscar Fuentes Esteves

        Oscar Fuentes Esteves

        student•
        hace 4 años

        Obviamente lo mejor es usar Variables de Entorno, pero creo que eso lo veremos más adelante.

        Me parecen geniales estas clases, ya que nos muestran como se inicia de manera real un proyecto.

          Pablo Humberto Arriola Agudelo

          Pablo Humberto Arriola Agudelo

          student•
          hace 4 años

          oscarfuentes81 un saludo. Puedes ampliar el concepto de variables de entorno en javascript puro. Donde se ubicarían, ¿es posible encriptarlas?, su protección en general. Gracias.

          Bramucci Candela

          Bramucci Candela

          student•
          hace 4 años

          Pablo no sé si te entendí bien, pero en el curso de webpack vemos como usar variables de entorno

        Guadalupe Monge Barale

        Guadalupe Monge Barale

        student•
        hace 4 años

        Otra forma de exportar e importar En el HTML decimos que nuestro js va a ser de tipo módulo.

        <script type="module" src="./src/main.js"></script>

        Nuestra api-key

        export const API_KEY = 'soy la secreta api-key';

        La importamos en el main.js

        import { API_KEY } from "./key.js";
          Jesús Álvarez

          Jesús Álvarez

          student•
          hace 4 años

          A mi me funcionó así pero cambiando las extenciones .js a .mjs

          Luis David Palomo

          Luis David Palomo

          student•
          hace un año

          Muchas gracias, tenia un error y su comentario de que el js sea tipo modulo me ayudo a resolverlo.

        Carlos Rodríguez

        Carlos Rodríguez

        student•
        hace 4 años

        Un aporte a mi repositorio con un entorno podriamos decir más exigente, con linter eslint y formateador prettier, estas configuraciones puedes ajustarlas a tu gusto. . https://github.com/cerm88/platzi-movies . . Si quieres que el autoformateo sea automático cada vez que guardes solo debes agregar esta configuración en tu setting.json en tu espacio de trabajo en la carpeta .vscode

        { "[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.rulers": [100], "editor.formatOnSave": true } }
        Yangetze González

        Yangetze González

        company_admin•
        hace 3 años

        Primera forma de testing de cualquier web developer: background: red. La vieja confiable jajajaja

        Marcos Joel Sánchez López

        Marcos Joel Sánchez López

        student•
        hace 4 años

        gracias por siempre iniciar desde un principio los proyectos, ya que muchas veces se da por sentado que todos saben y puede inicializarlos. Gracias

          Hiram Rodriguez Gomez

          Hiram Rodriguez Gomez

          student•
          hace 4 años

          Exacto, de igual manera también nos ayuda a repasar o aprendemos tips adicionales que no se han comentado en otros cursos.

          Juan Castro

          Juan Castro

          teacher•
          hace 4 años

          En este curso práctico iniciamos el proyecto desde cero, pero en el curso profesional retomaremos un proyecto ya iniciado para optimizarlo tanto como podamos. Recuerda que, aunque sí es muy importante saber empezar proyectos desde cero (de hecho, es lo más recomendable para aprender algo nuevo), muchas veces NO tendrás esa oportunidad, sino que tendrás que colaborar en proyectos que ya empezaron hace mucho, por lo que será indispensable comprender su arquitectura y adaptarte al código a existente hasta que lo comprendas tan pero tan bien que puedas contribuir de la mejor manera posible. :D

        Julian Franco

        Julian Franco

        student•
        hace 4 años

        Yo quiero saber que agentes existirán en Michiagencia 😎

          Jorge Garcia

          Jorge Garcia

          student•
          hace 4 años

          jajaj ya somos dos.... que clase de tecnologia usan

        Patricio Nally

        Patricio Nally

        student•
        hace 4 años

        Estaría bueno ya que estamos trabajando desde el Frontend poder hacer un hide de la api-key ejemplo deploy a Netlify usando variables de entorno con Netlify functions. Me gustaría aprenderlo y no se como se hace! Gracias.

          Juan Castro

          Juan Castro

          teacher•
          hace 4 años

          En el curso profesional vamos a hablar del deploy. Aaaaaunque en realidad faltaría un curso un tris más avanzado para que lo hagamos tal cual como dices con variables de entorno.

          Patricio Nally

          Patricio Nally

          student•
          hace 4 años

          Exacto me interesaría esa parte, hoy en día con la utilización del JAMStack y Serverless , y organizar un proyecto como una infraestructura de micro-servicios, en vez de hacer un backend en node.js para ocultar las apis, ya que muchas veces no queremos que sepan de donde consumimos la info, se pueda usar una cloud functions, o vi que Netlify o Vercel dejan guardar hasta 100 variables de entorno por proyecto que en el fondo usan AWS Amplify! Puntualmente no se como ocultar las apis de esa manera, tengo que aprenderlo. Quizás es un concepto avanzado. 💪🏻

        Luis Dominguez

        Luis Dominguez

        student•
        hace 4 años

        Crear el archivo secrets.js y secrets.example.js me resulta útil, por ejemplo, cuando en entrevistas de trabajo te piden subir código que requiere un key que no debes compartir, así les dejas instrucciones claras para que ellos usen su propio key.

        Usuario anónimo

        Usuario anónimo

        user•
        hace 3 años

        📒 Agregando variables de entorno para trabajar en React

        1. Agrega un archivo .env en el nivel donde se encuentra tu .gitignore.

        1. Declara tu(s) variable(s) de entorno dentro de tu archivo .env, dichas variables siempre deben comenzar por "REACT_APP_", sin las comillas y agregando el nombre de tu variable en mayúsculas espaciada por guiones bajos, posteriormente asígnale un valor a esta variable usando un "=".

        Ejemplo de una variable de entorno: REACT_APP_API_KEY=abcd1726gy57

        1. Para usar tu variable de entorno simplemente declara: "process.env." Sin las comillas y seguido del nombre de tu variable.

        Ejemplo de uso:

        console.log(process.env.REACT_APP_API_KEY)

        1. Ahora en tu archivo .gitignore agrega: ".env", sin comillas y en cualquier parte del documento, eso ignorará los archivos .env y mantendrá a salvo tus secretos.

        Nota:

        Ten en cuenta que las variables de entorno se ejecutan al iniciar el servidor, así que no te alteres si tu variable no se muestra a la primera, esto puede pasar porque ya te encontrabas trabajando dentro de tu servidor antes de agregar las variables de entorno, la solución es detener el servidor y volverlo a iniciar con el clásico "npm start".

        Si quieres saber más sobre este tema, consulta la documentación aquí. 👈

        Saludos, Poli. o( ̄▽ ̄)ブ💚

        Misael Gomez

        Misael Gomez

        student•
        hace 4 años

        Para activar la extensión de Peacock

        • F1
        • escribe: Peacock
        • Elige: Peacock: Change to a favorite color
        Said Cueter

        Said Cueter

        student•
        hace 4 años

        Por querer implementar Tailwind en el proyecto... una clase que debio durar 15 minutos, me tomo 3 horas. Vamos a decir que valio la pena

        Josue Samuel Castillo Cetino

        Josue Samuel Castillo Cetino

        student•
        hace 4 años

        cuál es la forma más usada para verificar que el archivo css este bien? body{ background-color: red; }

        Ricardo Andres Ojeda Silva

        Ricardo Andres Ojeda Silva

        student•
        hace 4 años

        Hola! ¿Qué alternativa podríamos usar desde el frontend si queremos hacer deploy a producción pero mantener nuestra API key "segura" ?

          Juan Castro

          Juan Castro

          teacher•
          hace 4 años

          Lo respondemos en el curso profesional: https://platzi.com/cursos/api-profesional/

        Maury Sugheiry Alcalá Romero

        Maury Sugheiry Alcalá Romero

        student•
        hace 4 años

        Excelente explicaión para ocultar los archivos que no se deseen visualizar en el repositorio

        Chema F

        Chema F

        student•
        hace 3 años

        Si a alguien, aun haciendo lo que Juan no se le 'oculta' el secrets.js, lo que te tienes que hacer es colocar la ruta completa si lo has guardado en una carpeta a demás de en el src.

        Ej:

        moviesAPI > src > secrets.js

        En el .gitignore tendrás que poner:

        moviesAPI/src/secrets.js

        Me he tirado horas intentado resolver porque no se ocultaba y era por la carpeta que tenia anterior al src :')

        Ricardo Alfonso Chavez Vilcapoma

        Ricardo Alfonso Chavez Vilcapoma

        student•
        hace 3 años

        YO NO LO HAGO PORQUE YA LO TENGO INSTALADO 🤣. Quién haya escuchado esa frase en alguna parte de sus vidas den su like.

        Julian Franco

        Julian Franco

        student•
        hace 4 años

        Hay otra manera de implementar lo de la API Key del lado del cliente y no del lado de servidor ?

          Juan Castro

          Juan Castro

          teacher•
          hace 4 años

          Sí y no. Todo en el frontend es público, eso nunca cambiará. Pero dependiendo del tipo de autenticación que quieras hacer, puede que cada usuario tenga su propio token / API KEY diferente y el resto del mundo no tenga por qué enterarse. En casos "básicos" como este no hay de otra, la API KEY tiene que ir con las peticiones. Punto.

          Juan Castro

          Juan Castro

          teacher•
          hace 4 años

          Mi recomendación es que no evites al servidor. Aprende frontend con calma, desarrolla tus proyectos... pero si puedes, apenas puedas... aprende backend con Node para poder implementar todo este tipo de estrategias con mucho más control

        Christian Velázquez

        Christian Velázquez

        student•
        hace 4 años

        "Simple" pero, necesario. Además, es una interesante introducción a seguridad.

        Gonzalo Piñeiro Aleman Urquiza

        Gonzalo Piñeiro Aleman Urquiza

        student•
        hace 3 años

        El único problema es que al momento de publicar la app, si inspeccionamos el código fuente los usuarios pueden ver la KEY

          Juan Castro

          Juan Castro

          teacher•
          hace 3 años

          Yep. Precisamente. Lo vemos más a detalle en el curso profesional.

        Henry Alexander Velásquez Rosas

        Henry Alexander Velásquez Rosas

        student•
        hace 2 años

        Recomendación 🤗💜

        Me encantaría que para nuevos cursos se optimice el espacio de VSC de la manera en que lo hace el profe Fernando Herrera.

        x.png

        Ya que de la manera que lo hacen en Platzi nos roba mucho espacio cuando tenemos pantallas pequeñas.

        a.png

        Estudiante común en Platzi y fuera 🚀

        Puedo seguir la clase con comodidad...

        b.png

        😢👇 espacio perdido, no se puede ver la clase con comodidad

        c.png