swagger2是基于我们在开发前后端分离项目的时候方便后端开发接口的人员做测试,以及团队之间更好的配合。好处我不多说,我在这主要讲怎么运用swagger2。

1.项目准备

/*Navicat Premium Data TransferSource Server         : localhost_3306Source Server Type    : MySQLSource Server Version : 80026Source Host           : localhost:3306Source Schema         : newsmanagersystemTarget Server Type    : MySQLTarget Server Version : 80026File Encoding         : 65001Date: 20/01/2022 00:05:35
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for topic
-- ----------------------------
DROP TABLE IF EXISTS `topic`;
CREATE TABLE `topic`  (`tid` int NOT NULL AUTO_INCREMENT,`tname` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,PRIMARY KEY (`tid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of topic
-- ----------------------------
INSERT INTO `topic` VALUES (1, '国内');
INSERT INTO `topic` VALUES (2, '国际');
INSERT INTO `topic` VALUES (3, '军事录屏修改');
INSERT INTO `topic` VALUES (4, '体育');
INSERT INTO `topic` VALUES (5, '娱乐');
INSERT INTO `topic` VALUES (6, '社会');
INSERT INTO `topic` VALUES (7, '财经');
INSERT INTO `topic` VALUES (8, '科技');
INSERT INTO `topic` VALUES (9, '健康');
INSERT INTO `topic` VALUES (10, '汽车');
INSERT INTO `topic` VALUES (12, '房产');
INSERT INTO `topic` VALUES (13, '家居');
INSERT INTO `topic` VALUES (14, '旅游');
INSERT INTO `topic` VALUES (15, '文化');
INSERT INTO `topic` VALUES (28, '探索');
INSERT INTO `topic` VALUES (29, '另类');
INSERT INTO `topic` VALUES (31, '测试');
INSERT INTO `topic` VALUES (33, '更新测试');
INSERT INTO `topic` VALUES (34, '录屏测试');SET FOREIGN_KEY_CHECKS = 1;
/*Navicat Premium Data TransferSource Server         : localhost_3306Source Server Type    : MySQLSource Server Version : 80026Source Host           : localhost:3306Source Schema         : newsmanagersystemTarget Server Type    : MySQLTarget Server Version : 80026File Encoding         : 65001Date: 20/01/2022 00:05:42
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for news_users
-- ----------------------------
DROP TABLE IF EXISTS `news_users`;
CREATE TABLE `news_users`  (`uid` int NOT NULL AUTO_INCREMENT,`uname` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,`u_pwd` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,PRIMARY KEY (`uid`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8 COLLATE = utf8_unicode_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of news_users
-- ----------------------------
INSERT INTO `news_users` VALUES (1, 'admin', 'admin');
INSERT INTO `news_users` VALUES (2, '王八', '123456');
INSERT INTO `news_users` VALUES (3, '小白', '12345678');
INSERT INTO `news_users` VALUES (4, '哈哈哈', '123456');
INSERT INTO `news_users` VALUES (6, 'WYT', '123456');
INSERT INTO `news_users` VALUES (7, 'DFP', '123456');SET FOREIGN_KEY_CHECKS = 1;

准备好我们要的2个数据表

2.引入swagger2的依赖

        <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.5.0</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.5.0</version></dependency>

3.使用

这是我们基本的目录结构

2个控制类

一个是控制操作用户的请求地址

一个是控制操作类型的请求地址后面我们会用到

在config包下放sw2的配置

package com.example.springbootdata.config;
import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/*** Swagger2配置信息*/
@Configuration
@EnableSwagger2
public class Swagger2Config {@Beanpublic Docket UsersApiConfig(){return new Docket(DocumentationType.SWAGGER_2).groupName("webApi").apiInfo(UsetApiInfo()).select()//只显示api路径下的页面.paths(Predicates.and(PathSelectors.regex("/User/.*"))).build();}@Beanpublic Docket TopicApiConfig(){return new Docket(DocumentationType.SWAGGER_2).groupName("webApi").apiInfo(TopicApiInfo()).select()//只显示api路径下的页面.paths(Predicates.and(PathSelectors.regex("/Topic/.*"))).build();}private ApiInfo UsetApiInfo(){return new ApiInfoBuilder().title("Users测试文档").description("本文档描述了测试接口定义").version("1.0").contact(new Contact("new DFO", "http://33221@qq.com", "33221@qq.com")).build();}private ApiInfo TopicApiInfo(){return new ApiInfoBuilder().title("topic测试文档").description("本文档描述了测试接口定义").version("1.0").contact(new Contact("new DFO", "http://33221@qq.com", "33221@qq.com")).build();}
}

注意要添加的2个注解

前2个方法相当于创建2个管理桌面

后2个方法是向2个桌面输入内容。

.paths(Predicates.and(PathSelectors.regex("/Topic/.*")))

是指定该页面下管理是Topic下的所有地址

详细代码我在后面会分享这里讲一些关键的地方

我们给controller的方法添加注释方便阅读文档

同样也在类头为整个类添加注释@API

主要的介绍在这里你们可以去测试一下我在这就测试比较常用的3个

@Api:修饰整个类,描述Controller的作用

@ApiOperation:描述一个类的一个方法,或者说一个接口

@ApiParam:单个参数描述

@ApiModel:用对象来接收参数

@ApiModelProperty:用对象接收参数时,描述对象的一个字段

@ApiImplicitParam:一个请求参数

@ApiImplicitParams:多个请求参数

4.测试

运行项目在浏览器下输入请求我的端口是8080

http://localhost:8080/swagger-ui.html输入这个就可打开页面了

先点击第一步

这个就是我们刚刚在sw2配置中设置的2个桌面管理 不同的接口

点击第二步

会显示我们controller的请求地址点开具体一个测试

返回的结果

有的时候分局传入的数据格式不同sw2会提示你怎么输入数据

5.源码分享

data_test: 学习代码分享 (gitee.com)

springboot整合swagger2,附带源码相关推荐

  1. app商城源码_海量的SpringBoot和SSM项目【附带源码+视频教程】快速成为全栈

    为了帮助更多的小伙伴进行项目的锻炼,孟哥整理较多的实战项目,包括SSM.Springboot.Springcloud.小程序等. 各种项目还在不断的更新中--仅限制学习使用,若有侵权,请联系删除. 点 ...

  2. SpringBoot整合Swagger2教程

    SpringBoot整合Swagger2教程 环境说明 springboot 版本 2.4.4 swagger2 版本 2.9.2 工程准备 创建Springboot工程.这一步不会的可先去Hello ...

  3. Swagger的安装以及SpringBoot整合Swagger2实现SwaggerAPI文档测试

    前言 本篇博客是本人在网上学习Swagger所产出的个人笔记.主要内容有: 1.Swagger的安装 2.Swagger的介绍 3.Swagger2中常用的注解 4.快速上手案例 准备工作:Swagg ...

  4. 保姆级别 附带源码 Django集成channels(一)实现简单聊天功能

    目录 前言 不想看我瞎BB可以直接跳到这里 1.WebSocket 1.1 ajax轮询 1.2 long poll 1.3 Websocket 2.Channels 2.1 WSGI 2.2 ASG ...

  5. Python基于改进YOLOv5的烟叶病害检测系统(附带源码)

    Python基于改进YOLOv5的烟叶病害检测系统(附带源码) 1.背景 2.前言 3.烟叶数据集的采集 4.烟叶数据集的标注 5.烟叶检测训练&识别效果 6.病害数据集的采集 7.病害数据集 ...

  6. SpringMVC异常处理机制详解[附带源码分析]

    SpringMVC异常处理机制详解[附带源码分析] 参考文章: (1)SpringMVC异常处理机制详解[附带源码分析] (2)https://www.cnblogs.com/fangjian0423 ...

  7. android类中定义颜色,自定义实现简单的Android颜色选择器(附带源码)

    在写Android App过程中需要一个简单的颜色选择器,Android自带的ColorPicker和网上的一些ColorPicker都太高端了,都实现了颜色渐变功能,我要的不需要那么复杂,只想提供几 ...

  8. SpringMVC关于json、xml自动转换的原理研究[附带源码分析 --转

    SpringMVC关于json.xml自动转换的原理研究[附带源码分析] 原文地址:http://www.cnblogs.com/fangjian0423/p/springMVC-xml-json-c ...

  9. python面试题及答案bt_公布上期Python笔试题答案,附带源码与运行结果

    今天发布的内容没有废话,就是上一期的笔试题答案,由于内容较多,我们今天就公布前五道题的答案,附带源码哦!请感兴趣的读者细细研究! 笔试 笔试题一答案:利用Python创建如图所示的二叉树,并给出前序. ...

  10. Dx11DemoBase 基类(三) 实例应用 【已实现】【附带源码】

    现在我已经到哪了? 读书时,尤其是技术知识书籍, 我一般会担忧自己是否陷得太深, 细节关注得太多, 而忘了整体的过程: 一直以来对Direct3D 很畏惧, 因为太多函数和细节:现在我必须暂缓下, 看 ...

最新文章

  1. 想入门图深度学习?这篇55页的教程帮你理清楚了脉络
  2. Windows8系统服务终极优化
  3. python使用函数的优点-原来 Python 还有这些实用的功能和特点!
  4. 公钥密码--Paillier
  5. 自适应宽_移动端实现自适应缩放界面的方法汇总
  6. linux yast 软件管理_系统管理工具 Spacewalk
  7. Postman的使用说明
  8. 【解题报告】表达式求值(栈,表达式树)
  9. 让用户输入一个月份,判断这个月是哪个季节?
  10. Genius ACM(倍增+归并排序)
  11. 制作一个遍历当前子目录的Makefile
  12. c语言除法连续运算,单片机C语言快速精度除法方案
  13. 【HTML基础习题】HTML5+CSS3做问卷星登录页面
  14. 服务器 虚拟机 崩溃,认识VMware虚拟机,系统崩溃或异常,可通过快照还原磁盘文件系统...
  15. Kubernetes Secrets
  16. 18软工实践-团队现场编程实战(抽奖系统)
  17. LinuxC——指针
  18. Android 8遇到的问题cat: /system/build.prop: Permission denied,如果不root,有方法解决吗?
  19. LVGL V0.01版本移植到STM32F4
  20. C++ 语言禁止派生类 - final specifier

热门文章

  1. 百度语音输入 html5,百度语音识别(采集麦克风声音 并自动转为文字)
  2. SSD固态硬盘的Trim命令是什么
  3. 喂~你那里下雪了吗?
  4. android中添加arial字体(非android默认字体)
  5. 【分班】S型分班 python
  6. 浅析淘宝刷单--我们如何网购
  7. vmware efi linux,图文详解在vmware11虚拟机上安装以EFI启动模式的win 10 technical preview系统-网络教程与技术 -亦是美网络...
  8. 软考系统架构设计师范文2:论面向服务的架构及其应用
  9. 概率导论(一)——样本空间与概率
  10. layui-icon各种常用动态图标