一行代码实现RESTFul接口及Swagger3-OpenAPI使用

一、介绍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接口

不需要去创建并手写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接口,并对外提供服务。如下图:

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://www.kancloud.cn/hanxt/springboot2/1814460

I can feel you forgetting me。。 有一种默契叫做我不理你,你就不理我

原文地址:https://www.cnblogs.com/weidaijie/p/14376942.html