【springBoot项目】一行代码实现 RESTFul 接口

一、介绍 spring data rest

Spring Data REST 是基于 Spring Data 的 repository 之上,可以把 repository 自动输出为 REST 资源,目前支持:

Spring Data JPA Spring Data MongoDB Spring Data Neo4j Spring Data GemFire Spring Data Cassandra 将 Repository 自动转换成 REST 服务。注意是自动。

二、准备工作

因为 Spring Data REST 是基于 Spring Data 的 repository 之上的,所以我们在 JPA 操作数据的代码基础上完成。

配置好 JPA 数据源 创建 Article 实体类 创建 ArticleRepository 接口b1ef954ad7301e8ff00089f47bef5f13.png不需要去创建并手写 Service 层和 Controller 层,将由 Spring Data REST 帮我们自动完成。

三、实现 rest 接口的最快方式

通过 maven 坐标引入 Spring Data REST

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-data-rest</artifactId> 
</dependency>

在 JPA(mogodb 等)Repository 接口上面加上 RepositoryRestResource 注解,path 是 Rest 接口资源的基础访问路径。

@RepositoryRestResource(path="articles")   //就是这一行神奇的代码,甚至这一行都可以不写
public interface ArticleRepository extends JpaRepository<Article,Long> {
}

就简单的这样一个实现,Spring Data Rest 就可以基于 article 资源,生成一套 GET、PUT、POST、DELETE 的增删改查的 REST 接口,并对外提供服务。如下图:e231e93c6d61fff85b8de4fd37e0b505.png

Swagger3-OpenAPI 使用

整合 springdoc-openapi 在 pom.xml 里面去掉 springfox,添加如下的 openapi 依赖。

<dependency>
   <groupId>org.springdoc</groupId>
   <artifactId>springdoc-openapi-ui</artifactId>
   <version>1.4.0</version>
</dependency>

将 API 分组分组展示

@Configuration
public class OpenAPIConfig {

  @Bean
  public GroupedOpenApi restApi() {
    return GroupedOpenApi.builder()
            .group("rest-api")
            .pathsToMatch("/rest/**")
            .build();
  }

  @Bean
  public GroupedOpenApi helloApi() {
    return GroupedOpenApi.builder()
            .group("hello")
            .pathsToMatch("/hello/**")
            .build();
  }

}

源码地址 https://github.com/weidaijie1/SpringBootStudy/tree/master/SpringBootJpaRestful

参考地址:https://www.kancloud.cn/hanxt/springboot2/1814460


作者:离人怎挽_wdj

来源链接:

https://www.cnblogs.com/weidaijie/p/14376942.html

2a019ac35b96753a0d14713953d1589f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值