Schema y types

3/25
Recursos
Transcripción

El Schema es la base de una API en GraphQL, es el encargado de describir todos los tipos de información que va a contener.

Para la creación de este proyecto usaremos una herramienta llamada npx, para ello primero debes instalarlo con el comando:

npm i -g npx

Una vez instalado, dentro de la carpeta de nuestro proyecto vamos a correr el siguiente comando:

npx license mit > LICENSE && npx gitignore node && git init && npm init -y

Ya que termina de correr el comando es momento de añadir la dependencia de GraphQL a nuestro proyecto:

npm i graphql

Dentro de GraphQL contamos con distintos tipos de datos escalares:

  • String
  • Int
  • Float
  • Boolean
  • ID

Aportes 35

Preguntas 6

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

a 1.25 x se entiende mejor

Aquí dejo el comando para que sólo copien y peguen 😬
npx license mit > LICENSE && npx gitignore node && git init && npm init -y

Por si a alguien le interesa:

El tema que está usando el profesor es: Cobalt2 Theme Official
Para ver el tamaño de los paquetes: Import Cost

Está tan cool el script para inicializar el proyecto que me hice un alias con los comandos necesarios para mí para iniciar un proyecto en js en general, lo puse en mí ~/.zshrc y ~/.basrc:

alias jsinit='npx license mit > LICENSE && npx gitignore node && git init && npm init -y && npx eslint --init'

Empieza un poco confuso, espero que sea como el profe dice y tenerle confianza de que se irán despejando las dudas en los próximos cursos.

Genial, ahora entiendo porque aman tanto a GraphQL

siguiendo el ejemplo de la documentación!

var { graphql, buildSchema } = require('graphql');

var schema = buildSchema(`
  type Query {
    hello: String
  }
`);

var root = { hello: () => 'Hello world!' };

graphql(schema, '{ hello }', root).then((response) => {
  console.log(response);
});

Demoras al cargar este vídeo

Versión powershell del comando para los que utilizamos windows:

npx license mit > LICENSE; npx gitignore node; git init; npm init -y

Para los que estan instalando npm i -g npx ren linux y les da error usen: npm install-g npx

Ejecuto el comando y se queda ahí
![]()

😉😉😉😉😉

const { graphql, buildSchema } = require('graphql');

const schema = buildSchema(`
	type Query {
		hello: String
	} 
`);

(async () => {
  const response = await graphql(schema, '{ hello }');
  console.log(response);
})();
$ node index.js

ponganlo a 1.25 0 1.5 x y se escucha mejor

Si tienes problemas con npx y te sale un error de este estilo:

.
El problema puede ir asociado por tener espacios en el nombre de usuario. Esto me paso a mi y lo solucioné de esta forma:

1 - cmd /c mklink /J "C:\Users\myname" "C:\Users\My Name"
2 - npm config set cache C:\Users\myname\AppData\Roaming\npm-cache
3 - npm config set prefix C:\Users\myname\AppData\Roaming\npm

Esta información la saque de aquí: Error: EPERM: operation not permitted

Los tips de variable son: String, Integer, float, boolean.

E el arrow function que implime data se pueden quitar los parentesis de data pues solo recibe un parametro, lo aprendí en el curso de javascript xd

DATO!
También existe el tiipo de campo ID!

Con el comando npx del profe me sale:
El token ‘&&’ no es un separador de instrucciones válido en esta versión.
alguna sugerencia?

Les paso el código porque veo que nadie más lo ha hecho:

'use strict'

const {graphql, buildSchema} = require('graphql')

const schema = buildSchema(`
  type Query {
      hello: String
  }
`)

graphql(schema, '{ hello }').then((data) => {
    console.log(data)
})

No conocía el ‘use strict’

El Schema es la base de una API de GraphQL, consiste en un documento que describe detalladamente los tipos de información que tendrá la API, cada uno especificando qué tipo de campo es.

Los tipos de datos en GraphQL son string, integer, boolean y float.

Para generar un Schema hay que importar la función buildSchema desde graphql y pasarle como parámetro la estructura del esquema. Esta función devuelve un objeto de GraphQL que ya se puede ejecutar.

const { graphql, buildSchema } = require('graphql');
const schema = buildSchema(`
    type Query{
        hello: String
    }
`)
graphql(schema, `{hello}`).then((data) => {
    console.log(Data);
})

Al ejecutar la función graphql recibe el Schema como primer parámetro y después la propiedad que estamos solicitando, en este caso hello. Devuelve una promesa con la información.

Al ejecutar el script devuelve un objeto data, con la propiedad hello que fue la que se solicitó. Al no haber datos hello es null.

COMANDOS
npx ========> npm i -g npx
graphQL ====> npm i graphql
necesarios ==> npx license mit > LICENSE && npx gitignore node && git init && npm init -y

Si quieren que su terminal se vea similar pueden instalar esto.
Para Bash
Pata ZSH

Que maluco esos colores en ese editor, y los caracteres se ven muy raros

Ejecuté el comando pero no me cambio la licencia ISC. ¿Cual puede ser la solución?

¿y si no tengo un tipo definido como le pongo?, no hay algo como any?

el 172.1k que se refieres
codigo de teclado para las comillas hacia las izquierda
antemano gracias

Que debo hacer ?

no se que hacer con esto!! alguna idea?

npm ERR! code ENOLOCAL
npm ERR! Could not install from "Cordero\AppData\Roaming\npm-cache\_npx\18168" as it does not contain a package.json file.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Fernando Cordero\AppData\Roaming\npm-cache\_logs\2019-09-21T16_05_39_642Z-debug.log
Install for [email protected] failed with code 1```

Excelente inicio.

Tengo una duda. ¿A que hace refrencia el 172.1k que aparece en su codigo despues de require(graphql)? yo estoy trabajandio desde una terminal linux y para que el codigo me funcionara correctamente tuve que omitir ese numero.

npm vs npx — What’s the Difference?

https://www.freecodecamp.org/news/npm-vs-npx-whats-the-difference/

Usando async/await se vería así:

"use strict";

const { graphql, buildSchema } = require("graphql");

const schema = buildSchema(`type Query {
    hello: String, 
}`);

const getAndPrintData = async () => {
  const data = await graphql(
    schema,
    `
      {
        hello
      }
    `
  );
  console.log("data >>", data);
};

getAndPrintData();

Sí alguien tiene este error

The token '&&' is not a valid statement separator in this version.

por favor intentar correr el comando desde gitbash

npx gitignore ----- GRANDIOSOOO COMANDO!

'use strict'

const { graphql, buildSchema } = require('graphql')

//definiendo el esquema
const schema = buildSchema(`
    type Query {
        hello: String
    }
`)

//ejecutar el query hello
graphql(schema, '{hello}').then((data) => {
    console.log(data)
})