关于IDEA配置Swagger自动生成API

本文探讨了前后端分离的概念及其优势,强调了Swagger在API文档自动化生成中的作用。通过介绍如何在Spring项目中集成Swagger,包括所需依赖、配置步骤,以及Swagger的相关注解,展示了如何在IDEA中实现API文档的自动生成,帮助开发者更高效地进行前后端协同开发。
摘要由CSDN通过智能技术生成

这年头很流行前后端分离的方式来开发项目,然后我也找了一些有关的资料学习了一下。

前两天学习了一下Swagger自动生成API的方法。然后就有一些自己的总结,感兴趣的可以看看。

我们要了解swagger,我们就要先从前后端分离去入手。按照现在的发展趋势,可以说前后端分离已经是业内对开发和部署方式所达成的一种共识。但是还有很多公司还是采用传统的开发风格,也就是以后端的MVC为主,前端人员只要提供一些静态的HTML页面、JS、CSS、Image等,然后大部分的后端团队担当了大量的开发工作,如后端团队会将前端人员提供的静态素材再配以模板技术如jsp、framemark等,实现项目的开发。在这种一种开发模式下,可以说前端的开发和调试都是需要依赖于后端的web容器的支持,实际上这种开发模式根本无法做到前后端真正的分离。

那到底什么是真正的前后端分离呢

如图:

真正的前后端分离的方式如上图所示,首先后端开发团队,他们只要专注后端的控制层(Controller层)、服务层(service层)、数据访问层(dao层),整个后台会通过Restful风格的API向前端去提供数据或者讲前端会通过Restful风格的API到后端获取数据

然后后端开发团队,他们只要专注于前端的控制层、视图层。即除了负责前端的静态页面,还需要负责页面上所有的交互代码以及与后端API的交互工作它要对API进行相应的调用,并获取到数据拿到数据后对数据进行相应地处理,将数据在视图层进行相应的展示。最终在前后端分离的模式下,前端可以实现在没有后端API的情况下,还能完美地运行和完美地奔跑。

所以以这样的一种方式形成的前后端分离,无论是在开发上还是在项目部署上都可以说是各自独立且松耦合,这才是真正意义上的前后端分离

         API(Application Programming Interface,应用程序编程接口)是一些预先定义的方法,开发人员只要调用API中所提供的方法就能实现相应的功能,而且开发人员是不用知道方法内部的实现细节

但是前后端分离也是会给我们带来一些问题的

作为一个web项目来说,在前后端分离模式下可以实现项目的独立开发、部署。但是最终还是需要进行前后端集成的,在集成过程中肯定要进行集成测试以及接口的联调。但是这个集成往往都是令人头痛的问题。

         问题比如在最后集成的时候才发现,最开始设计商量好的数据结构发生了变化,而且这种变化是在所难免的,这样的话,前后端人员在集成的时候肯定要花费大量的时间去集成

         产生这样的问题的原因是前后端人员无法做到及时协商、尽早解决。那么怎么才能保证我们前后端人员在开发的过程中不至于分道扬镳、越走越远呢?

         解决方案首先定义schema(方案/计划),并实时跟踪最新的API,降低集成风险

         即后端主要是开发API,再根据已经定义好的schema来进行数据测试。那么前端团队在开发前端工程当中,也会按照schema来做这个mock数据(模拟的假数据)用进行相应的测试。这样才能达到这个工作的正常进行。

         但是这个schema并不是在开始设计好后就不能被修改,是有可能会修改的,比如当需求有变化或者是一开始的设计并不是十分合理,可能考虑得并不是十分周到。我们肯定在后期会对schema做一定的修改,那么在修改的过程中我们要做的是什么?是前后端双方都必须实时跟踪最新的API,如果是实时跟踪那么可能出现这样的问题,比如后端团队修改schema生成最新的API,然后因为前端人员没能及时跟踪最新的API,导致前端人员还是拿着旧的API来进行相应的mock数据的测试以及相应的API接口的调用,那么最后集成的时候肯定会出现问题

  1. Swagger简介

         swagger是一个自动生成API说明文档的工具,帮助我们更好地实现前后端分离。swagger号称是全球最流行的API框架,官方的说法是swagger是一个规范的完整的框架,主要是用于生成、描述和调用以及可视化的Restful风格的WEB服务,它是一个既简单又强大的Restful API文档在线自动生成器。另外还有如下特点

  1. 它支持API文档与API定义同步更新的特点,即当API有了变化那么API的说明文档也会随之发生变化
  2. 它可以直接运行,并且能够在线测试API接口。这是因为它提供了Swagger UI这样的界面,供我们进行API接口的测试。4
  3. 它是支持多种语言(比如:JavaPHP)

         Swagger的官网:https://swagger.io/ 有兴趣的同学可以去浏览一下,爱旅行项目中就是使用swagger去自动生成API描述文档。

2.在项目中集成swagger自动生成API文档

  1. Swagger版本

       我们爱旅行是一个SSM项目,那么项目是如何集成Swagger呢?Spring提供了与Swagger集成的工具包叫springfox,springfox它可以让SSM项目与swagger更好地集成。官方提供了两个版本让项目去集成swagger:

  1. 第一个版本:springfox-swagger2 (新版本)
  2. 第二个版本:swagger-springmvc (老版本)

 

3.Spring集成Swagger之项目环境

  1. 项目环境
  2. 项目环境
    1. JDK1.8   一定要jdk1.8,不然跑不起swagger (可不用卸载之前1.7jdk)

                            上传jdk-8u11-linux-x64.tar.gz的安装包,命令tar -zxvf -C /usr/local/java解压,                       之后配置环境变量

  1. 命令:vim -r /etc/profile ,即对profile文件进行编辑,
  2. 在profile文件中输入下面的命令

#set java environment

JAVA_HOME=/usr/local/java/jdk1.8.0_11   #jdk1.8.0_11 jdk的版本

CLASSPATH=.:$JAVA_HOME/lib.tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

  1. 命令:source /etc/profile ,对profile文件进行重新加载(让配置起效果)。
    1. Spring4.1.7
    2. Mybatis3.2.2
        1. SpringMVC集成springfox-swagger2构建Restful API
  1. Maven依赖
    • springfox-swagger2
    • springfox-swagger-ui
    • guava
    • mapstruct-jdk8
    • Jackson   因为数据都是json格式,所以要加入json的依赖。

                            - Jackson-core

                            - Jackson-databind

                            - Jackson-annotations

4.Spring集成Swagger之配置步骤

  1. 在pom.xml文件中添加Swagger2相关的依赖

         相关依赖如下所示。

<!--START ======= Swagger所需要的依赖包======= START-->
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>2.4.0</version>
</dependency>
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>2.4.0</version>
</dependency>
<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值