文章目录

  • Swagger(开源)
    • 含义
    • 导入的依赖
  • SpringBoot集成Swagger
    • 配置Swagger
    • 配置Swagger扫描接口
  • 例题
  • 配置API文档的分组
  • 总结
  • 如果这个看不明白可以看这个,有详细的步骤

Swagger(开源)

含义

  1. 号称世界上最流行的API框架
  2. 直接运行,可以在线测试API测试

导入的依赖

在项目使用Swagger需要springbox;

  1. swagger2
  2. UI

SpringBoot集成Swagger

  1. 新建项目
  2. 导入项目依赖
<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version>
</dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version>
</dependency>
  1. 编写一个工程
  2. 配置swagger
package com.kuang.config;import org.springframework.context.annotation.Configuration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration
@EnableSwagger2
public class SwaggerConfig {}
  1. 测试运行网址:http://localhost:8080/swagger-ui.html

配置Swagger

swagger的bean的实例是Docket

//配置swagger信息的apiInfoprivate ApiInfo apiInfo(){Contact contact = new Contact("", "", "");return new ApiInfo("龙且的Api Documentation","Api Documentation","1.0","urn:tos",contact,"Apache 2.0","http://www.apache.org/licenses/LICENSE-2.0",new ArrayList());}

配置Swagger扫描接口

Docker.select()

 //配置了Swagger的Docker的bean实例@Beanpublic Docket getDocker(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()//RequestHandlerSelectors:配置扫描接口的方式//basePackage:指定要扫描的包(重要的)//any:扫描全部//none:都不扫描//withClassAnnotation:扫描类上的注解,参数是一个注解的反射对象//withMethodAnnotation:扫描方法上的注解.apis(RequestHandlerSelectors.basePackage("com.kuang.controller"))//过滤什么样的路径.paths(PathSelectors.ant("/kuang/**")).build();}

配置是否启动

@Beanpublic Docket getDocker(Environment environment){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(flase) //是否能启动Swagger.select()         .apis(RequestHandlerSelectors.basePackage("com.kuang.controller"))//过滤什么样的路径
//                .paths(PathSelectors.ant("/kuang/**")).build();}

例题

只在生产环境中使用,发布不使用

  1. 判断是不是生产环境 flag=false
  2. 注入enable
@Beanpublic Docket getDocker(Environment environment){//设置要显示的Swagger环境Profiles profiles=Profiles.of("dev","test");//通过environment.acceptsProfiles判断是否处于自己设定的环境中boolean flag = environment.acceptsProfiles(profiles);return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(flag).select()//RequestHandlerSelectors:配置扫描接口的方式//basePackage:指定要扫描的包(重要的)//any:扫描全部//none:都不扫描//withClassAnnotation:扫描类上的注解,参数是一个注解的反射对象//withMethodAnnotation:扫描方法上的注解.apis(RequestHandlerSelectors.basePackage("com.kuang.controller"))//过滤什么样的路径
//                .paths(PathSelectors.ant("/kuang/**")).build();}

配置API文档的分组

.groupName("龙且")

如何配置多个分组?声明多个Docker实例就好,不能重名

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

实体类配置:

package com.kuang.pojo;import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;@ApiModel("用户实体类")
public class User {@ApiModelProperty("用户名")public String username;@ApiModelProperty("密码")public String password;
}

控制类配置:

package com.kuang.controller;import com.kuang.pojo.User;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;@ApiOperation("Hello控制类") //接口
@RestController
public class HelloController {@GetMapping(value = "/hello")public String getHello(){return "杀戮空间法兰克";}@PostMapping(value = "/hello")public User user(){return new User();}@ApiOperation("Hello控制类")@GetMapping(value = "/hello2")public String Hello(@ApiParam("用户名") String username){return "hello"+username;}}

总结

  1. 可以通过Swager给一些比较难理解的属性或接口,增加注解信息
  2. 接口文档实时更新
  3. 可以在线测试
    【注意点】在正式发布时,关闭Swagger!!!

如果这个看不明白可以看这个,有详细的步骤

请点击

Swagger的相关知识相关推荐

  1. JS作用域相关知识(#精)

    在学习<你不知道的JS>一书中,特将作用域相关知识在此分享一下: #说到作用域,就不得不提到LHS查询和RHS查询: 1)如果查询目的是对变量进行赋值,则使用LHS查询 2)如果查询目的是 ...

  2. 工业相机参数之帧率相关知识详解

    点击上方"小白学视觉",选择加"星标"或"置顶"重磅干货,第一时间送达 工业相机是机器视觉系统的重要组成部分之一,在机器视觉系统中有着非常重 ...

  3. shell的相关知识(变量、脚本定义)

    一.shell的相关知识: 1.对于shell编程语言大体分为:机器语言.汇编语言.高级语言 2.shell变量类型:事先确定数据的存储格式和长度 shell变量分为:字符型.数值型 数值型又分为:整 ...

  4. 视频压缩算法的相关知识

    视频压缩算法的相关知识 MPEG-1 MPEG 视频压缩编码后包括三种元素:I帧(I-frames).P帧(P-frames)和B帧(B-frames).在MPEG编码的过程中,部分视频帧序列压缩成为 ...

  5. linux 格式化 dvd,linux 服务器分区格式化相关知识 -mount

    关于linux 系统mount和mkfs 的相关知识: 使用mount 1)Mount的相关格式:mount [-t 文件类型][-o  选项] devicedir 详解: -t 文件类型,通常默认m ...

  6. WinForm开发,窗体显示和窗体传值相关知识总结

    以前对WinForm窗体显示和窗体间传值了解不是很清楚 最近做了一些WinForm开发,把用到的相关知识整理如下 A.WinForm中窗体显示显示窗体可以有以下2种方法: Form.ShowDialo ...

  7. js基础--数据类型检测的相关知识

    欢迎访问我的个人博客:www.xiaolongwu.cn 前言 最近工作有点忙,好几天都没更新技术博客了. 周末起床打开有道云笔记,发现自己的博客todolist里躺了一堆只有名字的文件. 话不多说, ...

  8. 转载:关于错排的相关知识

    转载:关于错排的相关知识 杭电2048相关知识充电 转自:错排公式 分类: 数论 关于程序2012-06-08 19:07 335人阅读 评论(0) 收藏 举报 n2 错排问题 错排问题 就是一种递推 ...

  9. VMware虚拟网络相关知识

    VMware虚拟网络相关知识 虚拟网桥         通过虚拟网桥把虚拟机的虚拟网卡连接到宿主机的物理网卡上.通过它可以将虚拟机连接到宿主机所在的外部网络.如果宿主机上不止是一个物理网卡时,采用定制 ...

最新文章

  1. c语言中的普通字符包括什么,【判断题】C语言中的字符常量通常有两种形式:普通字符和转义字符。...
  2. 装修行业难互联网化?利润不合理并非本质,体制才是
  3. 后处理没有pui文件怎么打开_UG后处理添加具体步骤
  4. 实操|如何将 Containerd 用作 Kubernetes runtime
  5. 网络设备流量分析——ElastiFlow容器化部署与应用
  6. mysql优化20条原则
  7. php连接mysql的字符集问题_关于php7 设计链接mysqlutf8mb4字符集的问题
  8. VS2005进行WORD文档开发
  9. 引力波应该称为空间波
  10. java控制台输入输出
  11. 查看执行计划 oracle,查看Oracle执行计划的几种方法
  12. 【最后一天报名】数据科学峰会分论坛:供应链、用户增长、电商零售
  13. 计算机属性cmd命令,怎么用命令提示符打开系统属性
  14. 智慧交通云计算中心解决方案
  15. MonoX被偷袭?快准狠直击命门
  16. 目前计算机常用的CPU型号,价格差异太大了!教你选择CPU型号及常见CPU后缀字母详解...
  17. 纯css实现粒子效果
  18. Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史)
  19. 计算机台式机快捷键开机,电脑快捷键如何快速开关机
  20. 从零开始的单片机学习(十二)

热门文章

  1. wkwebview 文件服务器,wkwebview开发常见问题(wkwebview加载本地沙盒文件)
  2. wkwebview替换uiwebview_UIWebView完美切换至WKWebView
  3. linux ubuntu软件中心,分享|App Grid:一个优秀的Ubuntu软件中心替代品
  4. 能力是被逼出来的!!有压力才有动力
  5. LogRobust Robust Log-Based Anomaly Detection on Unstable Log Data
  6. java解压zip文件
  7. 内存卡:V30 C10 U3 A2啥意思
  8. pts 和 tty 的区别
  9. 开源web漏洞扫描工具集合
  10. docker-compose 启动 提示failed to build: manifest for java:latest not found: manifest unknown: manifest