GraphQL API mit Java: Schritt-für-Schritt-Tutorial in der Praxis

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in die GraphQL API mit Java

GraphQL ist eine moderne Abfragesprache für APIs, die es Clients ermöglicht, nur die Daten anzufordern, die sie wirklich benötigen. Im Gegensatz zu REST, wo die Antwortstruktur festgelegt ist, bietet GraphQL Flexibilität und Effizienz. In diesem Schritt-für-Schritt-Tutorial erstellen wir eine vollständige GraphQL API mit Java unter Verwendung der beliebten Bibliothek graphql-java und Spring Boot. Sie lernen, wie Sie einen Server konfigurieren, ein Schema definieren, Resolver schreiben und Abfragen ausführen. Alle Codebeispiele sind ausführungsbereit.



Was Sie lernen werden

  • Wie man ein Spring Boot Projekt für GraphQL einrichtet
  • Wie man ein GraphQL Schema definiert (Typen, Abfragen, Mutationen)
  • Wie man Resolver in Java schreibt
  • Wie man query- und mutation-Anfragen ausführt


1. Projekteinrichtung und Abhängigkeiten

Zunächst erstellen wir ein Spring Boot Projekt mit Maven. Fügen wir die notwendigen Abhängigkeiten in die pom.xml hinzu:

<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>

Diese Bibliotheken gewährleisten die Integration von GraphQL mit Spring Boot und eine komfortable Arbeit mit Schemata. Aktualisieren Sie das Projekt nach dem Hinzufügen der Abhängigkeiten.



Projektstruktur

Unser Projekt wird die folgenden Hauptkomponenten enthalten:

  • GraphQL Schema (Datei schema.graphqls)
  • Datenmodelle (Java POJO)
  • Resolver (Anfragebearbeiter)
  • Controller zum Testen


2. Definition des GraphQL Schemas

Erstellen Sie die Datei src/main/resources/schema.graphqls. Darin beschreiben wir die Datentypen und verfügbaren Operationen. Als Beispiel nehmen wir das Modell "Buch":

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}

Hier ist Book ein Objekttyp mit Pflichtfeldern (!). Query definiert Einstiegspunkte zum Lesen von Daten, und Mutation für Änderungen. Beachten Sie: In GraphQL werden Mutationen zum Erstellen, Aktualisieren und Löschen von Daten verwendet.



3. Erstellung von Java-Modellen und Resolvern

Modell Book

Erstellen wir eine einfache POJO-Klasse 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; }

// Getter und Setter public String getId() { return id; } public String getTitle() { return title; } public String getAuthor() { return author; } public int getYear() { return year; }}


Resolver für Query

Resolver verbinden das Schema mit den Daten. Erstellen wir die Klasse 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

Buchempfehlungen