Introducción a GraphQL desde las bases hasta crear APIs
- Descripción
- Currículum
- Reseñas
Bienvenido/a a Introducción a GraphQL desde las bases hasta crear APIs, en el que aprenderemos a trabajar con GraphQL desde sus bases hasta ser capaces de desarrollar APIs con GraphQL mediante Node.JS y Typescript.
GraphQL es un lenguaje de queries que te permite definir qué datos pedirle a un API. Se trata de una tecnología que Facebook publicó en el año 2015, después de usarlo como herramienta interna desde el año 2012.
Es una de las alternativas que han surgido para solucionar la mayor parte de los problemas que se dan en el uso de una API REST. Uno de esos problemas puede ser tener que realizar múltiples llamadas para obtener una información o que la información que se ha obtenido tiene datos que no vamos a utilizar, entre otras muchas cosas
GraphQL es un lenguaje de consulta que te ofrece un método compacto para leer y escribir datos relacionales entre cliente y servidor. Nos permite, como programadores, solicitar la información exacta que necesitamos, sin necesidad de recibir datos que no queremos.
¿De qué trata el curso?
El objetivo principal del curso es hacer una introducción a GraphQL con una combinación teórico-práctica en el que aprenderemos todo lo relacionado a GraphQL desde sus bases hasta ser capaz de desarrollar diferentes APIs sencillas que nos permitirá tener los conocimientos básicos para poder abordar proyectos con mayor complejidad.
Con lo que aprenderemos en este curso, estaremos preparados/as para empezar con el aprendizaje de trabajar con APIs más complejas que requieran de las siguientes funcionalidades que podréis aprender en el curso “GraphQL con Angular de 0 a Experto. JWT, Sockets, MongoDB”:
- Persistencia de datos con bases de datos (relacionales / no relacionales)
- Autenticación seguras trabajando con JWT (JSON Web Tokens).
- Encriptación de los datos sensibles (como contraseñas).
- Actualizaciones en tiempo real con Web Sockets.
- Publicar APIs con Heroku y Zeit Now.
- Y más.
Todo lo haremos con Apollo Server Express 2
¿Cuál es la razón de crear este curso?
- Mostrar a los desarrolladores que trabajan con REST que hay otra alternativa.
- Englobar los aspectos más importantes acerca de GraphQL empezando desde las bases, para los/as profesionales sin conocimientos en esta materia.
- Dar las herramientas necesarias para ser capaces de trabajar con GraphQL.
¿Qué aprenderemos durante el curso?
Empezamos de 0 y paso a paso siguiendo una curva de aprendizaje lógica y ascendente, donde podemos encontrar:
TEORÍA
- Introducción a GraphQL: ¿Qué es GraphQL? / Comparativa GraphQL VS REST / Ejemplo práctico GraphQL y REST.
- Schemas GraphQL – Type System: Crear schemas siguiendo las reglas y convenciones recomendadas.
TEORÍA + PRÁCTICA
- GraphQL Playground Apollo Server: Obtenemos conocimientos básicos para probar APIs GraphQL con el Playground de Apollo Server.
PRÁCTICA
- APIs GraphQL: Desarrollo de proyectos desde un “hola mundo” hasta un sistema de votaciones en tiempo real con NodeJS, Typescript y Apollo Server Express.
- API GraphQL en POSTMAN: Aprenderemos a consumir APIs GraphQL paso a paso desde 0.
- Apollo Datasource REST: Crear nuestra propia API con GraphQL haciendo uso de una API REST para beneficiarnos de las características de GraphQL.
- APIs con PostgreSQL mediante Hasura: Crearemos APIs GraphQL de manera muy sencilla y rápida trabajando con las bases de datos PostgreSQL.
- Documentación: Documentar los proyectos en formato markdown para tener + información de los recursos de la API.
- Deploy APIs en producción con Zeit Now: Aprenderemos paso a paso como publicar nuestras APIs en el servicio Zeit Now (similar a Heroku)
Durante las casi 11 horas del curso veremos todo lo relacionado al desarrollo de APIs y sus herramientas complementarias, haciendo todo el proceso muy práctico y con una curva de aprendizaje lógica y ascendente, donde vamos a obtener unos conocimientos sólidos acerca de esta materia.
Se tratarán todos los temas paso a paso y poco a poco hasta conseguir un buen nivel en los diferentes aspectos descritos anteriormente.
Con el objetivo de aprovechar al 100% el curso, te recomiendo tener conocimientos básicos Javascript, Typescript. Aun así, no os preocupéis, ya que los proyectos los iremos desarrollando poco a poco y no es necesario conocimientos avanzados.
El código del curso está 100% accesible en Github y también para su descarga en los apartados correspondientes a las clases del curso.
Y una de las cosas más importantes, tendréis apoyo, soporte y toda la ayuda de manera rápida y eficaz, siendo el tiempo de respuesta lo más reducido posible para que la experiencia del curso sea lo más agradable posible y se aprenda mucho 😉
Si quieres iniciarte en el desarrollo de APIs GraphQL y quieres obtener los conocimientos necesarios para sin tener ninguna noción básica sobre ello, este es tu curso, en el que vas a conseguir aprender a trabajar de otra forma a la hora de desarrollar tus proyectos de API, a medida que vas mejorando como profesional.
La metodología de aprendizaje es la siguiente:
- Todo explicado desde cero y paso a paso.
- Combinación teórico / práctica.
- 4 proyectos completos escritos desde 0 en el que se intenta tocar los aspectos más importantes
- Más de 120 clases explicadas al detalle.
- 11 horas de contenido en video.
- Orden lógico y progresivo, para que el aprendizaje no nos resulte frustrante y veamos progresos a medida que avanzamos.
- Soporte completo sobre el contenido del curso y orientación en los retos propuestos.
Al finalizar el curso seremos capaces de:
- Crear y definir Schemas completos aplicando buenas prácticas.
- Consumir con soltura cualquier API GraphQL propia o de otros desarrolladores, gracias a los conocimientos adquiridos.
- Crear APIs con fuente de datos de tipo JSON.
- Crear APIs GraphQL consumiendo desde una API REST con la librería Apollo Datasource REST.
- Crear APIs con Bases de Datos PostgreSQL en unos pocos pasasos con Hasura.
- Consumir APIs de GraphQL con Postman.
- Y mucho más.






-
1Presentación del cursoVideo lesson
Presentación inicial del curso
-
2Acerca de las siguientes clasesText lesson
Nota informativa acerca de las siguientes clases
-
3¿Cómo funciona un curso en Udemy?Video lesson
Os explico al detalle el funcionamiento del curso en Udemy
-
4Acerca de las preguntas y respuestasText lesson
Información acerca de las preguntas
-
5¿Cómo realizar reseñas?Text lesson
Explicación de como realizar las reseñas correctamente
-
6Instalación - Typescript / Ts-Node / Nodemon de manera globalVideo lesson
Pasos necesarios para instalar Typescript, Nodemon y Ts-Node para poder trabajar en el curso
-
7IDE recomendado para desarrollar curso - Visual StudioVideo lesson
Instrucciones para instalar Visual Studio Code y extensiones
-
8Extensiones Visual Studio Code recomendadasText lesson
Extensiones Visual Studio Code utilizadas en el curso
-
9¿Qué es GraphQL?Video lesson
Vamos a aprender de que trata GraphQL y cuales son sus características principales
-
10GraphQL VS REST - TeoríaVideo lesson
Realizamos la comparativa entre REST y GraphQL explicando las diferencias y las características de cada una de ellas
-
11GraphQL VS REST - Ejemplo Práctico con la API SwapiVideo lesson
Ejemplo práctico con la API de Star Wars que está disponible tanto en REST como GraphQL para ver las diferencias que hay a la hora de obtener una información concreta
-
12IntroducciónVideo lesson
Primeras nociones, reglas y convenciones que tenemos que seguir para crear schemas en GraphQL
-
13Tipos de Escalares - Scalar TypesVideo lesson
Vamos a aprender que son los tipos escalares, sus características y como debemos de aplicarlos en el schema.graphql a la hora de definir el contrato. Junto con los tipos de objeto será uno de los tipos imprescindibles a la hora de definir el schema.
-
14Tipos de Objecto - Object TypesVideo lesson
Vamos a aprender que son los tipos de objetos, sus características y como debemos de aplicarlos en el schema.graphql a la hora de definir el contrato. Junto con los tipos de escalares y los tipos de raíz será uno de los tipos imprescindibles a la hora de definir el schema.
-
15Tipos de Enum - Enum TypesVideo lesson
Hablamos sobre los enums, un tipo especial de escalares que poseen un conjunto de valores establecido
-
16Modificadores de tipoVideo lesson
Es la forma que vamos a representar la información que vamos a devolver donde podemos devolver de diferentes maneras, como objeto único nulo y no nulo, y como lista no nula y nula
-
17InterfacesVideo lesson
Hablamos sobre las interfaces que son definiciones abstractas de atributos comunes para poder obligar a cumplir estructuras comunes
-
18Root Types - IntroducciónVideo lesson
Vamos a aprender que son los tipos de raíz, sus características y como debemos de aplicarlos en el schema.graphql a la hora de definir el contrato. Junto con los tipos de escalares y los tipos de objetos será uno de los tipos imprescindibles a la hora de definir el schema.
-
19Root Type - QueryVideo lesson
Definiciones de las operaciones de consulta
-
20Root Type - MutationVideo lesson
Definiciones de la forma en la que realizamos modificaciones en el lador servidor.
-
21Root Type - SubscriptionVideo lesson
Definiciones de las notificaciones que recibiremos en tiempo real de los cambios dados en el servidor
-
22Tipos de entrada - Input TypeVideo lesson
Tipos de entrada que nos permitirán pasar valores a las consultas y las mutaciones.
-
23ComentariosVideo lesson
Como añadir comentarios para crear una documentación en GraphQL desde el Schema
-
24Introducción a la sección - ¿Qué vamos a aprender?Video lesson
Vamos a hacer una introducción sobre lo que se va a trabajar en esta sección
-
25Interfaz GrapiQL - Nociones básicasVideo lesson
Nociones básicas sobre GraphiQL
-
26Interfaz Apollo Server - Nociones básicasVideo lesson
Nociones básicas para trabajar en el playground de Apollo Server
-
27API que se usará para trabajar en esta secciónText lesson
API que usamos para trabajar en este apartado
-
28QueriesVideo lesson
Vamos a aprender a realizar queries
-
29Queries con argumentosVideo lesson
Vamos a aprender a realizar queries con argumentos
-
30Merge de la misma instancia de objetoVideo lesson
Vamos a ver como funciona el tema del merge al hacer varias consultas del mismo objeto
-
31AliasVideo lesson
Aprendemos a hacer consultas del mismo objeto con diferentes argumentos sin errores
-
32FragmentsVideo lesson
Aprenderemos el uso de los Fragments para realizar consultas con las mismas propiedades más limpias y fáciles de trabajar
-
33Query VariablesVideo lesson
Añadir argumentos desde el apartado de Query Variables
-
34MutationsVideo lesson
Operaciones de modificación de los datos con el tipo de raíz Mutation
-
35Directivas Include / SkipVideo lesson
Aprendemos a ignorar / añadir propiedades de una consulta con el objetivo de hacer consultas diferentes sin tener que añadir consultas extra
-
36Sobre el siguiente video - Nota informativaText lesson
Información acerca del siguiente video
-
37SubscriptionsVideo lesson
Modo de trabajar con las operaciones en tiempo real, en el que vamos a obtener la información cuando se den publicaciones de una acción concreta como es en este caso con los nuevos votos
-
38Repaso "Trabajando en la interfaz de GraphQL"Cuestionario
Esta prueba sirve como repaso a lo que hemos aprendido en este apartado con el objetivo de afianzar más los conocimientos adquiridos para poder trabajar mejor en el contenido del curso
-
39Objetivo de esta secciónText lesson
Información acerca del objetivo de esta sección
-
40Directorio con diferentes APIs públicas en GraphQLText lesson
Recopilatorio con diferentes APIs públicas.
-
41APIs creadas por miText lesson
Listado de APIs que he desarrollado que tengo para uso público y también de alumnos/as
-
42Listado de PrácticasText lesson
Listado de prácticas que irá actualizando con frecuencia dependiendo del interés
-
43Introducción - ¿Qué es lo que vamos a aprender en esta sección?Video lesson
Introducción a la sección para hablar de lo que vamos a hacer y que vamos a aprender
-
44Crear / Configurar los ficheros necesariosVideo lesson
Crearemos y configuraremos los ficheros package.json y tsconfig.json. Con el primero vamos definir las propiedades del proyecto y con el segundo la configuración de Typescript
-
45Instalación de las dependencias necesariasVideo lesson
En esta clase vamos a realizar las instalaciones tanto de las dependencias de producción como de desarrollo
-
46Hola mundo y configuración de los scripts del package.json. Ejecutar servidorVideo lesson
Configuraremos los scripts en el package.json y realizaremos la primera ejecución en el servidor para mostrar un "hola mundo"
-
47Server - Inicializar el servidor express con los ajustes por defecto sin graphqlVideo lesson
Creamos un servidor en Node Express sencillo antes de implementar las configuraciones de GraphQL
-
48Server - Pasar de Node Express a GraphQL y probarlo en el navegadorVideo lesson
Añadimos la configuración de GraphQL en el servidor de Node Express para poder empezar a trabajar en GraphQL. Terminaremos el video haciendo varias pruebas en la interfaz de graphiql
-
49Server - Refactorizar código de API GraphQLVideo lesson
Refactorizaremos completamente el código para dejar el proyecto mucho más ordenado y fácil para trabajar
-
50Configurar la API de GraphQL con Apollo Server Express y probar como en GraphiQLVideo lesson
Cambiamos la configuración del servidor de GraphQL para implementar una nueva interfaz de pruebas. Pasamos de graphiql a Apollo Server Express
-
51Introducción - ¿Qué es lo que vamos a aprender?Video lesson
Introducción a la sección para hablar de lo que vamos a hacer y que vamos a aprender
-
52Creación / Configurar los ficheros necesariosVideo lesson
Creación de los ficheros de configuración del proyecto necesarios
-
53Instalaciones de las dependencias necesariasVideo lesson
En este apartado realizaremos todas las instalaciones de las dependencias que necesitemos y descargaremos los recursos que se han añadido, para poder trabajar en este proyecto
-
54Descargar y añadir los ficheros JSON con la información de cursos y alumnosVideo lesson
Pasos previos para preparar el proyecto antes de iniciarlo
-
55Creación del servidor Node Express con los ajustes básicos y visualizarVideo lesson
Siguiendo la estructura que hemos finalizado en el proyecto anterior, el de Hello World, vamos a montar el servidor con lo básico paso por paso
-
56Especificación de los tipos de definiciones en el SchemaVideo lesson
Especificamos las definiciones del schema como los tipos de objeto de estudiante, cursos,... con otros elementos como Enums
-
57Añadir los "resolvers" necesarios y especificar el primer resolverVideo lesson
Vamos a crear el apartado de los resolvers teniendo en cuenta el contrato con el schema.graphql y terminaremos haciendo la union entre schema-resolvers para su correcto funcionamiento
-
58Configurar Apollo Server y probar con la query definida de los estudiantesVideo lesson
Configuramos el servidor Apollo Server Express para trabajar con GraphQL y terminaremos haciendo la primera prueba en la interfaz del apartado de pruebas con la lista de estudiantes
-
59Resolvers - Queries - Lista de estudiantesVideo lesson
Obtenemos la información de los estudiantes que existen en el fichero JSON llamado students
-
60Resolvers - Queries - Información del estudiante seleccionadoVideo lesson
Obtenemos la información del estudiante que seleccionamos mediante el parámetro ID de dicho estudiante
-
61Resolvers - Queries - Lista de cursosVideo lesson
Obtenemos la información de los cursos que existen en el fichero JSON llamado courses
-
62Resolvers - Queries - Información del curso seleccionadoVideo lesson
Obtenemos la información del curso que seleccionamos mediante el parámetro ID de dicho curso
-
63Resolvers - Type - Lista de estudiantes de los cursosVideo lesson
Mostrar la información completa de los estudiantes que está inscritos en un curso con nombre, email,...
-
64Schema y Resolvers - Mutation - Primeros pasos antes de empezarVideo lesson
Defineremos las operaciones de los mutation y prepararemos el apartado de resolvers de los mutation para dar solución a esa operaciones definidas en el schema.graphql
-
65Schema - Definición del input donde pasamos la información de los cursosVideo lesson
Definimos el elemento input para añadir la información de un curso que utilizaremos a la hora de pasar esa información cuando queremos crear y/o modificar el curso. Solucionamos el problema dado en el video anterior
-
66Resolvers - Mutation - Añadir un cursoVideo lesson
Aprenderemos a añadir un nuevo curso haciendo uso del mutation
-
67Resolvers - Mutation - Añadir un curso - Validar para evitar cursos duplicadosVideo lesson
Comprobación a la hora de añadir un curso, para que no se duplique. Comprobamos por nombre del título
-
68Resolvers - Mutation - Modificar un cursoVideo lesson
Aprenderemos a modificar la información de un curso seleccionado
-
69Resolvers - Mutation - Eliminar un cursoVideo lesson
Aprenderemos a eliminar un curso mediante el mutation
-
70Código fuente finalText lesson
Código fuente final
-
71¿Qué es lo que vamos a aprender en esta sección?Video lesson
Se explica lo que se va a hacer en esta sección
-
72Instalación de PostmanVideo lesson
Instalación y primeras nociones con POSTMAN
-
73Query - Lista de alumnosVideo lesson
Obtenemos la lista de los alumnos mediante el query
-
74Query - Alumno seleccionadoVideo lesson
Obtenemos el alumno seleccionado por ID mediante el query
-
75Query - Alumno seleccionado usando Query VariablesVideo lesson
Obtenemos el alumno seleccionado por ID mediante el query con query variables
-
76Query - Alumno seleccionado usando Query Variables y FragmentsVideo lesson
Obtenemos el alumno seleccionado por ID mediante el query haciendo uso del Query Variables, Alias y los Fragment
-
77Query - Lista de cursosVideo lesson
Obtenemos la lista de alumnos mediante el query
-
78Query - Curso seleccionadoVideo lesson
Obtenemos el alumno seleccionado por ID mediante el query
-
79Query - Curso seleccionado usando Query VariablesVideo lesson
Obtenemos el alumno seleccionado por ID mediante el query haciendo uso del Query Variables
-
80Query - Curso seleccionado usando Query Variables y FragmentsVideo lesson
Obtenemos el curso seleccionado por ID mediante el query haciendo uso del Query Variables, Alias y los Fragment
-
81Query - Curso seleccionado con directiva include / excludeVideo lesson
Excluir / Incluir valores mediante la directiva skip / include
-
82Mutation - Insertar CursoVideo lesson
Insertaremos cursos mediante el mutation
-
83Mutation - Actualizar CursoVideo lesson
Actualizar la información de un curso mediante el mutation
-
84Mutation - Eliminar CursoVideo lesson
Borramos la información de un curso seleccionado
-
85Resultado de la colecciónText lesson
Resultado de todo lo que se ha trabajado en esta sección sobre el uso de Postman para probar una API GraphQL
