Swagger笔记

时间:2021-10-10
本文章向大家介绍Swagger笔记,主要包括Swagger笔记使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Swagger

学习目标

  • 了解Swagger的作用和概念
  • 了解前后端分离
  • 在SpringBoot中集成Swagger

Swageer简介

前后端分离

Vue + SpringBoot

后端时代:前端只用管理静态页面;html==>后端. 模版引擎 JSP=>后端是主力

  • 后端:后端控制层,服务层,数据访问层
  • 前端:前端控制层,视图层
    • 伪造后端数据,json。已经存在了,不需要后端,前端工程依然能跑起来
  • 前端如何交互?==>API
  • 前后端相对独立,松耦合;
  • 前后端甚至可以部署在不同的服务器上

产生一个问题:

​ 前后端集成联调,前端人员和后端人员无法做到“即时协调,尽早解决”最终导致问题爆发

解决方案:

  • 首先指定scheme[计划提纲],实时更新最新的API,降低集成的风险;
  • 早些年:指定word计划文档;
  • 前后端分离;
    • 前端测试后端接口:postman
    • 后端提供接口,需要实时更新最新的消息及改动

Swagger

  • 号称世界上最流行的Api框架;
  • RestFull Api 文档在线自动生成工具->Api文档与API定义同步更新
  • 直接运行,可以在线测试API接口
  • 支持多种语言(Java Php..)

在项目中使用Swagger需要 springbox;

  • swagger2
  • Ui

SpringBoot集成Swagger

1.新建一个Springboot-web项目

2.导入相关依赖

				<!--swagger2-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger.version}</version>
        </dependency>

        <!--swagger-ui-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger.version}</version>
        </dependency>

3.编写一个Hello工程

4.配置Swagger=>Config

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.movie.api.controller"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(new ApiInfoBuilder().title("movie电影系统 - api文档").version("v1.0").build());
    }

}

Swagger配置扫描接口

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Bean
    public Docket docket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.movie.api.controller"))//RequestHandlerSelectors配置要扫描的接口方法
                .paths(PathSelectors.any())//过滤
                .build()//工厂模式
                .apiInfo(new ApiInfoBuilder().title("朝歌电影系统 - api文档").version("v1.0").build());
    }

}

配置是否启动Swagger

我只希望Swagger在生产环境中使用,在发布的时候不使用

  • 判断是不是生产环境 flag = false
  • 注入enable(flag)

配置Api文档

如何配置多个分组;多个Docket实例即可

@Bean
public Docket docket1(){
  return new Docket(DocumentationType.SWAGGER_2).groupName("A");
}
@Bean
public Docket docket2(){
  return new Docket(DocumentationType.SWAGGER_2).groupName("B");
}
@Bean
public Docket docket3(){
  return new Docket(DocumentationType.SWAGGER_2).groupName("C");
}

如何内嵌Swagger文档

前端配置config.js

//自定义的配置文件
const config = {
    //后端api地址
    API_URL: "http://localhost:8888/api",
};

export default config

前端导入

<script>
import config from "@/config";

export default {

  data(){
    return{
      url: config.SWAGGER_URL,
    }
  }

}
</script>

总结:

​ 1.我们可以通过Swagger给一些比较难理解的属性或接口,增加注释信息

​ 2.接口文档实时更新

​ 3.可以在线测试

Swagger是一个优秀的工具,几乎所有大公司都有使用它

「注意点」在正式发布的时候,关闭Swagger!!出于安全考虑。而且节省运行时内存.。

原文地址:https://www.cnblogs.com/cfs322/p/15388700.html