【Spring实战】20 Spring Data REST+JPA构建基础的RESTful API

文章目录

      • 1. 基础概念
        • 1)Spring Data REST
        • 2)JPA(Java Persistence API)
      • 2. 添加依赖
      • 3. 创建JPA实体
      • 4. 创建JPA Repository
      • 5. 启用Spring Data REST
      • 6. 启动服务
      • 7. 测试
      • 8. 总结

Spring Data REST 是 Spring Framework 生态系统中的一个组件,它通过提供一套约定和默认配置,简化了使用 Spring 和 Java 构建 RESTful Web 服务的过程。使用它和 JPA(Java Persistence API)结合,我们可以更加轻松地创建强大且易于扩展的 RESTful API。

本文将介绍 Spring Data REST 的概念,如何集成,并使用自动生成的基础 API

下一篇 【Spring实战】21 Spring Data REST 常用功能详细介绍 将介绍常用的功能

1. 基础概念

1)Spring Data REST

Spring Data REST 是 Spring Data 项目的一部分,旨在简化 RESTful Web 服务的开发。它自动创建 RESTful 端点,允许通过 HTTP 进行数据访问和操作,并支持 HATEOAS,使客户端能够动态地发现和请求 API。

官网描述

【Spring实战】20 Spring Data REST+JPA构建基础的RESTful API_第1张图片

小插曲,上面提到的 HATEOAS 是什么呢?有兴趣的可以去了解

官网:https://apifox.com/apiskills/hateoas-driven-rest-api/

【Spring实战】20 Spring Data REST+JPA构建基础的RESTful API_第2张图片

2)JPA(Java Persistence API)

在之前的 【Spring实战】07 JPA 文章中也介绍过了,此处再说一下吧。 JPA 是 Java EE 的一部分,为 Java 对象提供了持久性和关系映射的标准。通过 JPA,我们可以使用 Java 类和注解来定义实体,将它们映射到数据库表,以及执行各种数据库操作。

2. 添加依赖

首先,确保你的项目中包含了 Spring Data JPA 和 Spring Data REST 这两个的依赖。

pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-data-jpaartifactId>
    dependency>
    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-data-restartifactId>
    dependency>
dependencies>

3. 创建JPA实体

在项目中创建一个简单的 JPA 实体类,例如 User,并使用 @Entity 注解标识它

package com.cheney.demo.modle;

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity(name = "t_user")
public class User {
    @Id
    private Integer id;
    private String name;
    private Integer age;
}

4. 创建JPA Repository

接下来,创建一个 JPA Repository 接口,例如 UserRepository,它继承自 JpaRepository

package com.cheney.demo.repository;

import com.cheney.demo.modle.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Integer> {

}

5. 启用Spring Data REST

在启动类上添加 @EnableJpaRepositories@RepositoryRestResource 注解,以启用 Spring Data JPA 和 Spring Data REST

package com.cheney.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;

@SpringBootApplication
@EnableJpaRepositories
public class DemoApplication {

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

6. 启动服务

【Spring实战】20 Spring Data REST+JPA构建基础的RESTful API_第3张图片

服务这就起来了,现在就可以使用 HTTP 请求执行各种操作,包括创建、读取、更新和删除(也即我们经常使用的 CRUD 操作)

7. 测试

以下是一些基本的 API 端点:

  • GET /users: 获取所有用户列表
    【Spring实战】20 Spring Data REST+JPA构建基础的RESTful API_第4张图片

  • GET /users/{id}: 获取特定 id 的用户的详细信息

    【Spring实战】20 Spring Data REST+JPA构建基础的RESTful API_第5张图片

  • POST /users: 创建新的用户

    【Spring实战】20 Spring Data REST+JPA构建基础的RESTful API_第6张图片

  • PUT /users/{id}: 更新特定 id 的用户的信息

    【Spring实战】20 Spring Data REST+JPA构建基础的RESTful API_第7张图片

  • DELETE /users/{id}: 删除特定 id 的用户

    【Spring实战】20 Spring Data REST+JPA构建基础的RESTful API_第8张图片

    验证一下是否删除,使用 GET 查看一下

    【Spring实战】20 Spring Data REST+JPA构建基础的RESTful API_第9张图片

8. 总结

通过 Spring Data REST 集成 JPA,我们可以迅速构建出强大的 RESTful API,无需编写大量的控制器代码。自动生成的端点支持使得客户端能够轻松地发现和使用 API。同时,通过 JPA,我们能够利用对象关系映射的便利性,将实体映射到数据库,实现数据的持久化。希望通过这个简单的案例,能够更好地理解如何利用 Spring Data REST 和 JPA 来构建现代的 RESTful 应用程序。详细的配置和高级功能,请参阅 Spring Data REST 官方文档。
和使用 API。同时,通过 JPA,我们能够利用对象关系映射的便利性,将实体映射到数据库,实现数据的持久化。希望通过这个简单的案例,能够更好地理解如何利用 Spring Data REST 和 JPA 来构建现代的 RESTful 应用程序。详细的配置和高级功能,请参阅 Spring Data REST 官方文档。

你可能感兴趣的:(Spring实战,spring,restful,java)