zoukankan      html  css  js  c++  java
  • 一行代码实现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。。 有一种默契叫做我不理你,你就不理我

  • 相关阅读:
    使用网络服务
    Linux Socket 学习(九)
    Linux Socket学习(六)
    Linux Socket学习(八)
    Developing Software in Visual Studio .NET with NonAdministrative Privileges
    html5+css3实现一款注册表单
    linux编程下signal()函数
    深入理解Oracle索引(10):索引列字符类型统计信息的32位限制
    智能手机屏幕清晰度用户体现的分析:PPI与PPI2
    架设邮件服务器windows 2003 POP3服务,SMTP服务收发邮件
  • 原文地址:https://www.cnblogs.com/weidaijie/p/14376942.html
Copyright © 2011-2022 走看看