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.
Introducción
Presentación inicial del curso
Nota informativa acerca de las siguientes clases
Os explico al detalle el funcionamiento del curso en Udemy
Información acerca de las preguntas
Explicación de como realizar las reseñas correctamente
Pasos necesarios para instalar Typescript, Nodemon y Ts-Node para poder trabajar en el curso
Instrucciones para instalar Visual Studio Code y extensiones
Extensiones Visual Studio Code utilizadas en el curso
Primeros pasos con GraphQL
Vamos a aprender de que trata GraphQL y cuales son sus características principales
Realizamos la comparativa entre REST y GraphQL explicando las diferencias y las características de cada una de ellas
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
Conceptos básicos GraphQL - Type System. Construyendo schemas a través de tipos
Primeras nociones, reglas y convenciones que tenemos que seguir para crear schemas en GraphQL
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.
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.
Hablamos sobre los enums, un tipo especial de escalares que poseen un conjunto de valores establecido
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
Hablamos sobre las interfaces que son definiciones abstractas de atributos comunes para poder obligar a cumplir estructuras comunes
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.
Definiciones de las operaciones de consulta
Definiciones de la forma en la que realizamos modificaciones en el lador servidor.
Definiciones de las notificaciones que recibiremos en tiempo real de los cambios dados en el servidor
Tipos de entrada que nos permitirán pasar valores a las consultas y las mutaciones.
Como añadir comentarios para crear una documentación en GraphQL desde el Schema
Trabajando en la Interfaz GrahQL Playground - Un GraphiQL mejorado
Vamos a hacer una introducción sobre lo que se va a trabajar en esta sección
Nociones básicas sobre GraphiQL
Nociones básicas para trabajar en el playground de Apollo Server
API que usamos para trabajar en este apartado
Vamos a aprender a realizar queries
Vamos a aprender a realizar queries con argumentos
Vamos a ver como funciona el tema del merge al hacer varias consultas del mismo objeto
Aprendemos a hacer consultas del mismo objeto con diferentes argumentos sin errores
Aprenderemos el uso de los Fragments para realizar consultas con las mismas propiedades más limpias y fáciles de trabajar
Añadir argumentos desde el apartado de Query Variables
Operaciones de modificación de los datos con el tipo de raíz Mutation
Aprendemos a ignorar / añadir propiedades de una consulta con el objetivo de hacer consultas diferentes sin tener que añadir consultas extra
Información acerca del siguiente video
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
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
(Opcional) Prácticas recomendadas para repasar el trabajo con el Playground
Información acerca del objetivo de esta sección
Recopilatorio con diferentes APIs públicas.
Listado de APIs que he desarrollado que tengo para uso público y también de alumnos/as
Listado de prácticas que irá actualizando con frecuencia dependiendo del interés
Introducción al desarrollo de una API GraphQL - Saludos
Introducción a la sección para hablar de lo que vamos a hacer y que vamos a aprender
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
En esta clase vamos a realizar las instalaciones tanto de las dependencias de producción como de desarrollo
Configuraremos los scripts en el package.json y realizaremos la primera ejecución en el servidor para mostrar un "hola mundo"
Creamos un servidor en Node Express sencillo antes de implementar las configuraciones de GraphQL
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
Refactorizaremos completamente el código para dejar el proyecto mucho más ordenado y fácil para trabajar
Cambiamos la configuración del servidor de GraphQL para implementar una nueva interfaz de pruebas. Pasamos de graphiql a Apollo Server Express
Academia Online con GraphQL
Introducción a la sección para hablar de lo que vamos a hacer y que vamos a aprender
Creación de los ficheros de configuración del proyecto necesarios
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
Pasos previos para preparar el proyecto antes de iniciarlo
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
Especificamos las definiciones del schema como los tipos de objeto de estudiante, cursos,... con otros elementos como Enums
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
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
Obtenemos la información de los estudiantes que existen en el fichero JSON llamado students
Obtenemos la información del estudiante que seleccionamos mediante el parámetro ID de dicho estudiante
Obtenemos la información de los cursos que existen en el fichero JSON llamado courses
Obtenemos la información del curso que seleccionamos mediante el parámetro ID de dicho curso
Mostrar la información completa de los estudiantes que está inscritos en un curso con nombre, email,...
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
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
Aprenderemos a añadir un nuevo curso haciendo uso del mutation
Comprobación a la hora de añadir un curso, para que no se duplique. Comprobamos por nombre del título
Aprenderemos a modificar la información de un curso seleccionado
Aprenderemos a eliminar un curso mediante el mutation
Código fuente final
Consumir GraphQL fuera de la interfaz GraphiQL con Postman
Se explica lo que se va a hacer en esta sección
Instalación y primeras nociones con POSTMAN
Obtenemos la lista de los alumnos mediante el query
Obtenemos el alumno seleccionado por ID mediante el query
Obtenemos el alumno seleccionado por ID mediante el query con query variables
Obtenemos el alumno seleccionado por ID mediante el query haciendo uso del Query Variables, Alias y los Fragment
Obtenemos la lista de alumnos mediante el query
Obtenemos el alumno seleccionado por ID mediante el query
Obtenemos el alumno seleccionado por ID mediante el query haciendo uso del Query Variables
Obtenemos el curso seleccionado por ID mediante el query haciendo uso del Query Variables, Alias y los Fragment
Excluir / Incluir valores mediante la directiva skip / include
Insertaremos cursos mediante el mutation
Actualizar la información de un curso mediante el mutation
Borramos la información de un curso seleccionado
Resultado de todo lo que se ha trabajado en esta sección sobre el uso de Postman para probar una API GraphQL
API en GraphQL haciendo uso de una API REST de Formula 1 mediante Apollo Server
Introducción a la sección
Comenzamos el proyecto con su creación y posterior instalación / configuración de lo necesario para poder comenzar
Introducción a la API de Ergast F1 antes de empezar a trabajar con ella en el proyecto
Aprenderemos a crear la fuente de datos principal que vamos a usar para acceder a la información de la API de tipo de REST y también vamos a aprender como configurarlo en el Apollo Server para poder hacer uso de esa fuente de datos
Primera definición en el schema para poder añadir la información de las temporadas y trabajar con dicha información
Obtenemos la lista de temporadas de toda la historia