GraphQL API mit Java: Schritt-für-Schritt-Tutorial für Anfänger

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

Einführung in GraphQL API mit Java

GraphQL ist eine Abfragesprache für APIs, die es Clients ermöglicht, nur die Daten anzufordern, die sie tatsächlich benötigen. Im Gegensatz zu REST, wo jeder Endpunkt eine feste Datenstruktur zurückgibt, bietet GraphQL Flexibilität und reduziert die Anzahl der Anfragen. In diesem Tutorial erstellen wir eine vollständige GraphQL API in Java mit Spring Boot und der Bibliothek graphql-java. Sie erfahren, wie Sie das Projekt einrichten, das Schema definieren, Resolver schreiben und Abfragen sowie Mutationen verarbeiten. Alle Codebeispiele sind ausführungsbereit.



1. Projekteinrichtung und Abhängigkeiten

Zunächst erstellen wir ein neues Spring Boot Projekt. Wir verwenden Maven, aber Sie können das Beispiel an Gradle anpassen. Fügen Sie die folgenden Abhängigkeiten in pom.xml hinzu:



<dependency>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-web</artifactId></dependency><dependency>    <groupId>com.graphql-java</groupId>    <artifactId>graphql-java</artifactId>    <version>21.0</version></dependency><dependency>    <groupId>com.graphql-java</groupId>    <artifactId>graphql-java-spring-boot-starter-webmvc</artifactId>    <version>2021-06-28T00-00-00-6e3b7b2</version></dependency>


Nach dem Hinzufügen der Abhängigkeiten erstellen Sie die Hauptanwendungsklasse:



@SpringBootApplicationpublic class GraphqlApplication {    public static void main(String[] args) {        SpringApplication.run(GraphqlApplication.class, args);    }}


Jetzt konfigurieren wir den GraphQL-Endpunkt. Erstellen Sie die Datei application.yml im Ordner resources:



graphql:  servlet:    mapping: /graphql    enabled: true    cors-enabled: true


Fertig! Die grundlegende Projektstruktur ist startbereit. Als Nächstes definieren wir das Schema.



2. Definition des GraphQL-Schemas

Das Schema ist der Kern einer GraphQL API. Es beschreibt die Datentypen, Abfragen und Mutationen. Erstellen Sie die Datei schema.graphqls im Ordner src/main/resources:



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

type Query { books: [Book] bookById(id: ID!): Book}

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


Hier haben wir definiert:

  • Book — ein Objekt mit den Feldern id, title, author und year.
  • Query — Einstiegspunkte zum Lesen von Daten (Bücherliste und Suche nach ID).
  • Mutation — Operationen zur Datenänderung (Hinzufügen und Löschen eines Buches).

Jetzt müssen wir dieses Schema in die Anwendung laden. Erstellen Sie eine Konfigurationsklasse:



import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import graphql.GraphQL;import graphql.schema.GraphQLSchema;import graphql.schema.idl.RuntimeWiring;import graphql.schema.idl.SchemaGenerator;import graphql.schema.idl.SchemaParser;import graphql.schema.idl.TypeDefinitionRegistry;

import java.io.File;import java.io.IOException;

@Configurationpublic class GraphqlConfig {

@Bean public GraphQL graphQL() throws IOException { File schemaFile = new File("src/main/resources/schema.graphqls"); TypeDefinitionRegistry typeRegistry = new SchemaParser().parse(schemaFile); RuntimeWiring wiring = buildWiring(); GraphQLSchema schema = new SchemaGenerator().makeExecutableSchema(typeRegistry, wiring); return GraphQL.newGraphQL(schema).build(); }

private RuntimeWiring buildWiring() { return RuntimeWiring.newRuntimeWiring() .type(
```

Blogs

Buchempfehlungen