GraphQL API con Java: tutorial práctico paso a paso

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción a GraphQL API en Java

GraphQL es un lenguaje de consulta moderno para API que permite a los clientes solicitar solo los datos que realmente necesitan. A diferencia de REST, donde la estructura de la respuesta es fija, GraphQL ofrece flexibilidad y eficiencia. En este tutorial paso a paso crearemos una API GraphQL completa en Java utilizando la popular biblioteca graphql-java y Spring Boot. Aprenderás a configurar el servidor, definir el esquema, escribir resolvers y ejecutar consultas. Todos los ejemplos de código están listos para ejecutarse.



Qué aprenderás

  • Cómo configurar un proyecto Spring Boot para GraphQL
  • Cómo definir un esquema GraphQL (tipos, consultas, mutaciones)
  • Cómo escribir resolvers en Java
  • Cómo ejecutar consultas query y mutation


1. Configuración del proyecto y dependencias

Para empezar, crearemos un proyecto Spring Boot con Maven. Agregaremos las dependencias necesarias en pom.xml:

<dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>    </dependency>    <dependency>        <groupId>com.graphql-java</groupId>        <artifactId>graphql-spring-boot-starter</artifactId>        <version>5.0.2</version>    </dependency>    <dependency>        <groupId>com.graphql-java</groupId>        <artifactId>graphql-java-tools</artifactId>        <version>5.2.4</version>    </dependency></dependencies>

Estas bibliotecas proporcionan la integración de GraphQL con Spring Boot y facilitan el trabajo con esquemas. Después de agregar las dependencias, actualice el proyecto.



Estructura del proyecto

Nuestro proyecto contendrá los siguientes componentes principales:

  • Esquema GraphQL (archivo schema.graphqls)
  • Modelos de datos (Java POJO)
  • Resolvers (manejadores de consultas)
  • Controlador para pruebas


2. Definición del esquema GraphQL

Cree el archivo src/main/resources/schema.graphqls. En él describiremos los tipos de datos y las operaciones disponibles. Como ejemplo, tomaremos el modelo "Libro":

type Book {    id: ID!    title: String!    author: String!    year: Int}

type Query { getBook(id: ID!): Book getAllBooks: [Book]}

type Mutation { addBook(title: String!, author: String!, year: Int): Book}

Aquí Book es un tipo de objeto con campos obligatorios (!). Query define los puntos de entrada para la lectura de datos, y Mutation para la modificación. Tenga en cuenta: en GraphQL, las mutaciones se utilizan para crear, actualizar y eliminar datos.



3. Creación de modelos Java y resolvers

Modelo Book

Crearemos una clase POJO simple Book.java:

public class Book {    private String id;    private String title;    private String author;    private int year;

public Book(String id, String title, String author, int year) { this.id = id; this.title = title; this.author = author; this.year = year; }

// getters y setters public String getId() { return id; } public String getTitle() { return title; } public String getAuthor() { return author; } public int getYear() { return year; }}


Resolver para Query

Los resolvers vinculan el esquema con los datos. Crearemos la clase QueryResolver.java:

import com.coxautodev.graphql.tools.GraphQLQueryResolver;import org.springframework.stereotype.Component;import java.util.*;

@Componentpublic class QueryResolver implements GraphQLQueryResolver {

private final List<Book

Blogs

Book Recommendations