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


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。

官网描述

在这里插入图片描述

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

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

在这里插入图片描述

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.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
    </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. 启动服务

在这里插入图片描述

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

7. 测试

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

  • GET /users: 获取所有用户列表
    在这里插入图片描述

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

    在这里插入图片描述

  • POST /users: 创建新的用户

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

8. 总结

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

  • 41
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值