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
  • 2
    Bocetos en papel y diseño en Figma

    Bocetos en papel y diseño en Figma

    08:05
Configuración inicial y maquetación del proyecto
  • 3
    Configuración del entorno de desarrollo

    Configuración del entorno de desarrollo

    16:53
  • 4
    Maquetación del proyecto: HTML y CSS

    Maquetación del proyecto: HTML y CSS

    18:34
Consumiendo la API
  • 5
    Lista de películas en tendencia

    Lista de películas en tendencia

    16:41
  • 6
    Lista de categorías

    Lista de categorías

    10:32
  • 7
    Migración a Axios

    Migración a Axios

    07:18
Navegación
  • 8
    Location y hash navigation

    Location y hash navigation

    17:17
  • 9
    Mostrando y ocultando secciones

    Mostrando y ocultando secciones

    22:05
  • 10
    Error: carga duplicada de datos

    Error: carga duplicada de datos

    06:30
Views
  • 11
    Filtrando películas por categoría

    Filtrando películas por categoría

    21:38
  • 12
    Retos: scrollTop y DRY

    Retos: scrollTop y DRY

    11:13
  • 13
    Buscador de películas

    Buscador de películas

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

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

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

    Endpoint de detalles de una película

    18:55
  • 16
    Lista de películas recomendadas

    Lista de películas recomendadas

    07:36
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
    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 3 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 3 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 3 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 3 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 3 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 3 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 3 años

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

    Patricio Nally

    Patricio Nally

    student•
    hace 3 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 3 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 3 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 3 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 3 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 3 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 3 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 3 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 3 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

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