Chuck's Academy

GraphQL con Node

Conceptos Básicos de GraphQL

En este capítulo, profundizaremos en los conceptos fundamentales de GraphQL. Comprender estos conceptos es crucial para construir APIs eficientes y flexibles. Los temas que cubriremos incluyen el esquema, los tipos, las consultas (queries), las mutaciones (mutations) y los resolvers.

Esquema (Schema)

El esquema es la pieza central de cualquier API GraphQL. Es una descripción del tipo de datos que pueden ser solicitados y manipulados en tu API. Define qué consultas (queries) y mutaciones (mutations) están disponibles y cómo se relacionan entre sí.

Ejemplo de un esquema básico:

graphql

Tipos (Types)

En GraphQL, todo es fuertemente tipado. Los tipos definen la estructura de los datos que puedes consultar. Los tipos principales incluyen:

  • Tipos escalares: Representan valores únicos como Int, Float, String, Boolean y ID.
  • Objetos (Objects): Agrupaciones de campos que pueden ser otros tipos escalares u objetos.
  • Listas (Lists): Secuencias de tipos.

Ejemplo de definición de tipos:

graphql

Consultas (Queries)

Las consultas son solicitudes de datos. Es el equivalente a los métodos GET en una API REST. Una consulta específica qué datos se desean recuperar según el esquema definido.

Ejemplo de consulta en GraphQL:

graphql

Mutaciones (Mutations)

Las mutaciones son operaciones que permiten crear, actualizar o eliminar datos. Son el equivalente a los métodos POST, PUT, DELETE en una API REST.

Ejemplo de una mutación:

graphql

Resolvers

Los resolvers son las funciones que se ejecutan para obtener los datos solicitados en las consultas y mutaciones. Son responsables de obtener los datos ya sea desde una base de datos, un servicio externo, o cualquier otra fuente de datos.

Ejemplo de resolver en Node.js:

javascript

Uniendo todo

Para integrar estos conceptos en un solo ejemplo, actualizaremos nuestros archivos schema.js y server.js:

schema.js

javascript

server.js

javascript

Resumen

En este capítulo, hemos cubierto los conceptos básicos de GraphQL, incluyendo el esquema, los tipos, las consultas, las mutaciones y los resolvers. Con esta base, estamos listos para pasar a la configuración de un servidor GraphQL con Node.js en el próximo capítulo.

[Placeholder: Diagrama que ilustre la relación entre el esquema, los tipos, las consultas y las mutaciones en GraphQL]


Pregúntame lo que sea