使用Java构建GraphQL API:面向初学者的分步教程

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程
```html

引言:为什么 GraphQL 和 Java 是强大的组合



现代 API 开发需要灵活性和效率。REST API 尽管广受欢迎,但常常面临 over-fetching(数据过度加载)或 under-fetching(数据不足)的问题。GraphQL 通过允许客户端仅请求所需数据来解决这些问题。



而 Java 仍然是企业级开发中最可靠的语言之一。通过 Spring Boot 框架将 GraphQL 和 Java 结合,为构建可扩展且高性能的 API 提供了强大工具。在本逐步教程中,我们将从零开始创建一个简单的 GraphQL API。



本材料将帮助希望掌握现代 API 构建方法的 Java 开发者。我们将解析关键概念、编写代码并测试我们的实现。



1. 项目设置与依赖管理



第一步是创建一个基本的 Spring Boot 项目。我们将使用 Maven 来管理依赖。请确保您已安装 JDK 17+ 和 Maven 3.8+。



创建包含以下内容的 pom.xml 文件:



<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0         http://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>

<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.2.0</version> </parent>

<groupId>com.example</groupId> <artifactId>graphql-java-tutorial</artifactId> <version>1.0.0</version>

<properties> <java.version>17</java.version> </properties>

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


配置好 pom.xml 后,创建应用程序的主类:



package com.example.graphqldemo;

import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;

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


现在项目结构已准备就绪。接下来我们进行数据定义。



2. 数据模型与 GraphQL Schema 定义



GraphQL Schema 是客户端与服务器之间的契约。我们将从创建一个简单的 Book(书籍)模型开始。



2.1 Java 模型类



package com.example.graphqldemo.model;

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

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

// Getters and Setters public String getId ```

博客

书籍推荐