CursosEmpresasBlogLiveConfPrecios

Alias y fragments

Clase 15 de 25 • Curso Práctico de GraphQL con JavaScript

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    Introducción al curso y prerequisitos del curso

    Introducción al curso y prerequisitos del curso

    01:01 min
  • 2
    ¿Qué es GraphQL?

    ¿Qué es GraphQL?

    00:15 min

Conceptos básicos

  • 3
    Schema y types

    Schema y types

    06:09 min
  • 4
    Queries y Resolvers

    Queries y Resolvers

    05:09 min
  • 5
    Sirviendo el API en la web

    Sirviendo el API en la web

    07:57 min
  • 6
    Custom Types

    Custom Types

    12:06 min
  • 7
    Argumentos

    Argumentos

    08:11 min
  • 8
    Configuración de base de datos

    Configuración de base de datos

    11:21 min
  • 9
    Integrando una base de datos

    Integrando una base de datos

    09:58 min
  • 10
    Mutations e Inputs

    Mutations e Inputs

    14:29 min
  • 11
    Repaso - Creando el tipo Estudiante

    Repaso - Creando el tipo Estudiante

    16:23 min
  • 12
    Nested Types

    Nested Types

    11:22 min
  • 13
    Resolver de tipos

    Resolver de tipos

    08:45 min
  • 14
    Errores

    Errores

    08:50 min

Conceptos avanzados

  • 15
    Alias y fragments

    Alias y fragments

    Viendo ahora
  • 16
    Variables

    Variables

    06:42 min
  • 17
    Enums

    Enums

    06:29 min
  • 18
    Interfaces - Tipo Monitor

    Interfaces - Tipo Monitor

    12:30 min
  • 19
    Directivas

    Directivas

    06:16 min
  • 20
    Unions

    Unions

    12:14 min

Consumiendo el API

  • 21
    Preparando API para producción

    Preparando API para producción

    04:27 min
  • 22
    HTTP requests

    HTTP requests

    02:43 min
  • 23
    Clientes de GraphQL

    Clientes de GraphQL

    02:29 min
  • 24
    Consumiendo el API desde un frontend simple

    Consumiendo el API desde un frontend simple

    11:05 min
  • 25
    Cierre del curso

    Cierre del curso

    01:14 min
Tomar examen
Resumen

Dentro de GraphQL podemos correr más de una petición a la vez y nombrarlas de distinta manera para poder identificarlas, esto es posible gracias a los Aliases o simplemente Alias.

La sintaxis de un Alias es bastante simple:

nombreDelAlias: tipoDeDato(argumento: tipo) {
  datos
}

Además de los Alias, podemos agrupar campos para ser reutilizados en distintas peticiones gracias a los Fragments.

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
        Jecsham Castillo

        Jecsham Castillo

        student•
        hace 6 años

        Cada vez me está encantando más GraphQL

          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 4 años

          Así es, es bastante práctico. Imagínate tener que modificar la respuesta de una API a cada rato para poder hacer esto jajaja.

        Cristian Mota Núñez

        Cristian Mota Núñez

        student•
        hace 6 años

        Basicamente estos consectos convierten tu API en un gran JSON que puedes consumir a tu antojo 🤯🤯💥

          Mateo Nieto Hoyos

          Mateo Nieto Hoyos

          student•
          hace 6 años

          Real

        Yerlinson Maturana Serna

        Yerlinson Maturana Serna

        student•
        hace 6 años

        Definitivamente esto deja a Rest en pañales. :o

          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 4 años

          Igual sigues respondiendo en rest jejeje. Más bien que la construcción de contratos de las APIs se quedan en pañales.

        Iraida Mercedes Barreto Díaz

        Iraida Mercedes Barreto Díaz

        student•
        hace 6 años

        Me encantan que con los fragments se puedan definir los campos quiero traer en la consulta :o

        Ya lo implementé y funcionó :')

        !aliasyfragments

        Carl Friedrich Mateus Sierra

        Carl Friedrich Mateus Sierra

        student•
        hace 7 años

        Es bueno hacer varios consultas en una misma peticion es rapido el servicio?

          Favio Náquira

          Favio Náquira

          student•
          hace 7 años

          Creo que va a depender de que tan optimizados estén tus resolvers, pero sin lugar a dudas, el hecho de solamente hacer una petición y no varias es un upgrade mayor a tus aplicaciones.

          Mario Menjívar

          Mario Menjívar

          student•
          hace 6 años

          Dependerá de su complejidad. Y esta dependerá de tu creatividad al resolver los requerimientos :)

        Carl Friedrich Mateus Sierra

        Carl Friedrich Mateus Sierra

        student•
        hace 7 años

        He visto este curso de Graphql y me parece excelente. Pero es bueno hacerlo de esta manera o es mejor utilizar herramientas como prisma o postgraphile para llamar la informacion desde la base de datos?

          Jesus Eduardo Murrieta Rosas

          Jesus Eduardo Murrieta Rosas

          student•
          hace 6 años

          TE recomiendo prisma, lo utilizo como microservicios en kubernetes, conectando diferentes bases de datos y respondiendo con prisma graphql para diferentes apps.

          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 4 años

          Qué hacen esas dos herramientas que mencionaste?

        Carlos Enrique Ramírez Flores

        Carlos Enrique Ramírez Flores

        student•
        hace 6 años

        La documentación esta muy bien!! Vamos a darle una checada! https://graphql.github.io/learn/queries/#aliases

        Alex Abel Lerman

        Alex Abel Lerman

        student•
        hace 6 años

        Brutal

        Héctor Daniel Hernández Castillo

        Héctor Daniel Hernández Castillo

        student•
        hace 6 años

        GraphQL realmente enamora a primera vista.

        Carlos Hernandez

        Carlos Hernandez

        student•
        hace 3 años

        Qué maravilla

        Luis Alberto Colunga Pérez

        Luis Alberto Colunga Pérez

        student•
        hace 5 años

        Tengo una duda, se pueden realizar fragments dentro de nuestro código en vez de hacerlo por consulta en el graphiql?

          Nery Alberto Cano Ortigoza

          Nery Alberto Cano Ortigoza

          student•
          hace 5 años

          La idea es que puedas exportar las funciones que estamos creando a nuestro codigo, por ejemplo de react y lo utilices como funciones que te retornen los valores de la base de datos

        Francisco Garcia [C6]

        Francisco Garcia [C6]

        student•
        hace 6 años

        Muy interesante

        { AllCourses: getCourses{ _id title } Course1: getCourse(id: "5f0c8140c6163a17722314d4"){ ...CourseFields teacher } Course2: getCourse(id: "5f0c8152c6163a17722314d5"){ ...CourseFields topic } } fragment CourseFields on Course { _id title description }
        Pablo Verduzco

        Pablo Verduzco

        student•
        hace 6 años

        🤯

        Andres Felipe Jerez Giraldo

        Andres Felipe Jerez Giraldo

        student•
        hace 6 años

        Muchachos tengo una duda, intente hacer el mismo fragment tal cual el ejemplo del profesor, pero en el course1 y course2 me devuelve nulls ambos, alguien tiene idea de por que ?

        { Allcourses: getCourses { ...CourseFields } Course1: getCourse(id: "5e668b324066c107a9aa40b5") { ...CourseFields } Course2: getCourse(id: "5e66a4ded8550d2880d55047") { ...CourseFields } } fragment CourseFields on Course { _id title description }

        Y la respuesta:

        { "data": { "Allcourses": [ { "_id": "5e668b324066c107a9aa40b5", "title": "Mi titulo", "description": "Mi descripcion" }, { "_id": "5e668b324066c107a9aa40b6", "title": "Mi titulo 2", "description": "Mi descripcion 2" }, { "_id": "5e66a4ded8550d2880d55047", "title": "Curso de ejemplo 4", "description": "descripcion fantabulosa de mutacion" } ], "Course1": null, "Course2": null } }
          Andres Felipe Jerez Giraldo

          Andres Felipe Jerez Giraldo

          student•
          hace 6 años

          nvm, ya encontre que era

        Diego Fernando Caviedes Camaho

        Diego Fernando Caviedes Camaho

        student•
        hace 4 años

        Este el mimos spread operator

        Miguel Angel Reyes Moreno

        Miguel Angel Reyes Moreno

        student•
        hace 4 años

        Interesante que estemos viendo conceptos avanzados en el curso básico.

        Alias y fragments

        En GraphQL Podemos hacer varias consultas al mismo tiempo, por ejemplo:

        query{ AllCourses: getCourses{ _id title } Course1: getCourse(id:"61664f8ded307fc554c718ff"){ _id title description } Course2: getCourse(id:"61664f8ded307fc554c71901"){ teacher description } }

        Con los fragments podemos crear queries que mandamos a llamar y así simplificamos el código de las mismas, por ejemplo:

        query { AllCourses: getCourses{ ...CourseFields } } fragment CourseFields on Course { _id title description people { _id name } }
        Jose Eduardo Romero Baltazar

        Jose Eduardo Romero Baltazar

        student•
        hace 4 años

        Esto es genial

        leonardo Oteca

        leonardo Oteca

        student•
        hace 6 años

        Se pueden anidar Fragments?

          Cesar David Ramírez Dimaté

          Cesar David Ramírez Dimaté

          student•
          hace 4 años

          Si, porque se pueden crear bloques de campos similares y separarlos en fragments diferentes.

        Guillermo Vara De Gante

        Guillermo Vara De Gante

        student•
        hace 5 años

        Wooow, esa parte de GraphQL esta genial!

          Reinaldo Mendoza

          Reinaldo Mendoza

          student•
          hace 4 años

          Concuerdo

        juan david jaramillo zuñiga

        juan david jaramillo zuñiga

        student•
        hace 5 años

        Desde un projecto Frontend con React o Angular, como se harían este tipo de consultas? http?

          Reinaldo Mendoza

          Reinaldo Mendoza

          student•
          hace 4 años

          todo pasa en el backend, luego tu decides como presentar la informacion en el front