Juan Antonio Cuahonte Isla
Luciano Cavallo
Genial! 👌
Sergio Nicolas Silva Mendieta
Gracias Juan, eres el verdadero profe de este curso
Una query permite ejecutar una petición al API, dentro de una query debes indicar la consulta que quieres ejecutar y los campos que deseas obtener. GraphQL te va a devolver la información que solicitaste dentro del objeto data.
El resultado de tu petición no se va a ejecutar de manera mágica, para ello debes definir el objeto resolvers, este objeto va a contener una propiedad del mismo nombre que la query que va a resolver o ejecutar.
Juan Antonio Cuahonte Isla
Luciano Cavallo
Genial! 👌
Sergio Nicolas Silva Mendieta
Gracias Juan, eres el verdadero profe de este curso
Yurley Sanchez
este es un post en medium que quiero compartir de las buenas practicas en los resolves en graphQL: https://medium.com/paypal-engineering/graphql-resolvers-best-practices-cd36fdbcef55
Pablo Fernández
buenísimo aporte 👌
Francisco Garcia [C6]
Gracias parce
Juan Mercado
Aun no me quedo claro para que se utiliza GraphQL...
César David Ramírez Dimaté
Es sencillo. Actualmente tu defines varias APIs tipo REST para traer cierta información. Si quieres añadir nuevos campos al servicio REST que tendrías que hacer? Modificar toda la API para añadir ese campo. GraphQL lo que entraría a hacer es encargarse de llamar esas APIs y tu defines en la query de GraphQL si quieres obtener un campo o quitarlo de tu consulta, así, no tendrías que estar modificando APIs en todo momento si quieres construir una respuesta con unos campos específicos.
Reinaldo Mendoza
Ya voy entendiendo mejor como funciona
Pedro Pérez Islas
Es posible llamar a más de un resolver:
graphql(schema, '{ hello, saludo }', resolvers).then((data) => { console.log(data) })
Diego Galocha
Que finalidad tiene pasar varios resolvers?
César David Ramírez Dimaté
De hecho lo que hace es ejecutar los dos queries (hello y saludo) utilizando la constante resolvers donde están definidas las 2 funciones.
Reinaldo Mendoza
Yo lo veo así: El schema es definir el nombre de la función y el tipo de dato de retorno, luego el resolver es el código a ejecutar y luego graphql es llamar la función para que se ejecute
Samir Jimenez Vivas
Mucha cosa para algo tan sencillo.
Jonathan Hernandez Zapata
'use strict' const { graphql, buildSchema } = require('graphql'); // schema const schema = buildSchema(` type Query { hello: String, saludo: String } `); // resolvers const resolvers = { hello: () => 'Hola mundo', saludo: () => 'Hola a todos' } // execute query graphql(schema, '{ saludo }', resolvers).then((data) => { console.log(data); });
Daniel A.
me sale este error al ejecutar el código:
UnhandledPromiseRejectionWarning: Error: Expected undefined to be a GraphQL schema.
Javier Alvarez Jiménez
Lo que a mí me funcionó fue pasarme a la versión 14.7.0 de graphql, tal como se indica en este post
Angel Choque
José Luis Encastin Flores
Hola Miguel! Gracias por el aporte. Disculpa, en qué parte de la documentación me viene la información de esa versión? No logro encontrar la referencia
Angel Choque
El curso esta muy desactualizado, no lo recomiendo hacerla ya que se pierde mas tiempo que ver en la propia documentacion viendo con prisma o typegraphql los cuales son muy buenos. esto te puede ayudar https://www.howtographql.com/
Luis Paredes
Deira y Dara!
Elvis Sánchez
José Heriberto López Ruiz
Jajajaja, sí es extraño, pero realmente ambas maneras de pronunciar "Data" son totalmente correctas. Depende del lugar de los EEUU donde lo digan, pero en realidad cualquier angloparlante lo entiende indistintamente bien :-).
Miguel Angel Reyes Moreno
Pueden retornar 2 queries sin problemas:
const { graphql, buildSchema } = require("graphql"); //*Definiendo el esquema const schema = buildSchema(` type Query { hello: String pokemon: String } `) //*Lo arriba es: Tipo -> Query. Nombre de query -> Hello. Dato que retorna -> String //* Configurar los resolvers para que la query sí regrese información const resolvers = { hello: () => { return "Hello World!" }, pokemon: () => { return "Pikachu" } } //*Ejecutar el query hello graphql(schema, '{ hello, pokemon }', resolvers).then((data) => { console.log(data) })
Santiago Garcia
Para los que tienen la ultima version de GraphQL lo pueden ver en el archivo package.json. Para cambiar a la version del profe les dejo este link
Jaime Fernando Ordóñez peña
mas curso de graphql por fis
Eric Mainhard
Sii porfavor, no le entiendo nada en este
Andrés Felipe Castañeda
Muy interesante GraphQL
David Gallego
Un schema, si comprendi bien, es como la estructura base que describe los componentes que hay en la API.
Diego Forero
Team PlatziHola, el schema es la estructura de los datos que se pueden consultar y el tipo de dato que es, por ejemplo tu puedes tener una tabla que tiene los post de un blog, esta tabla tiene titulo, fecha de creación, contenido, fecha de actualización, autor del blog, pero tu quieres tener en graphql un schema que solo pueda mostrar el titulo, fecha de actualización y el autor, pero nada más, esto se define en el schema.
Arantxa Giovanna Rosas Del Valle
Diego con base en lo que dices se podría decir que es algo similar a las vistas de SQL?
Emilio Velazco Pineda
¿Cuando van a actualizar el curso?
Javier Alvarez Jiménez
Hola, seguí el código tal como viene en la clase y me salió el siguiente error:
Error: Expected undefined to be a GraphQL schema.
para solucionarlo me pasé de la versión 16... de graphql a la 14.7.0 y ya funcionó.
Samir Jimenez Vivas
La forma en la que lo veo, la Query es el SET Y MUTATION es POST.
Ruben Garcia
Importante los resolvers deben ser funciones con el mismo nombre de las queries
David Campos
Una Querie permite ejecutar una solicitud hacía la API para traer información. En el Querie se debe indicar la información deseada y qué campos de esa consulta se quiere obtener. Se pueden pedir tantos campos como se desee.
Resolvers
Los Resolvers son los que darán la respuesta a las Queries. A partir del ejemplo anterior, para que el hello obtenga una respuesta el resolver debe tener una propiedad hello con un valor.
Para que el Resolver sea tomado en cuenta hay que enviarlo como tercer parámetro a la hora de ejecutar el Querie.
const resolver = { hello: () => { return 'Hello world' } } graphql(schema, `{ hello }`, resolver).then((data) => { console.log(data); }) .catch((err) => {console.log(err);});
Con está implementación el valor que tendrá hello será "Hello world".
En las versiones más recientes de GraphQL
Los parámetros de graphql se pasan como un objeto Los resolvers se colocan del siguiente modo
graphql({ schema: schema, source: '{ saludo}', rootValue: resolvers }) .then((data) => { console.log(data); }) .catch(e => { console.log(e); });
16.6.0
const schema = buildSchema(` type Query { hello: String saludo: String } `) const rootValue = { hello: () => "Hello From GraphQL", saludo: () => "Hello world" }; const source = "{ saludo }"; // Ejecutar el query Hello graphql({schema, source, rootValue}) .then(response => { console.log(response); }) .catch(error => console.log(error.message));