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. core identity mysql_Asp.Net Core Identity 4 改成 MySql/MariaDB
  2. 如何做好OA流程审批?
  3. 【深度学习之ResNet】——深度残差网络—ResNet总结
  4. 粉丝提问:求问大神您会查exif吗?
  5. SQL Sever 刪除重複數據只剩一條
  6. 10个最佳jQuery Lightbox效果插件收集
  7. sqlserver2008未将对象引用设置到对象的实例_JVM | Java对象的创建、存储和访问详解...
  8. ES6新特性_变量的解构赋值---JavaScript_ECMAScript_ES6-ES11新特性工作笔记006
  9. windows下nodejs开发环境的安装与配置
  10. BIOS和DOS中断例程的安装过程
  11. HTML知识积累及实践(四) - 表单元素
  12. 【备忘】加入L2范数正则化后的正规方程求解参数推导过程
  13. Android常用浏览器,常用六款经典Android平台浏览器推荐
  14. java求三角形周长 面积_计算三角形的周长和面积 java
  15. 15.7 项目:多线程 XKCD 下载程序
  16. TB6612FNG直流电机驱动
  17. java把URL转换成二维码并保存在指定的位置
  18. java电话号码_java编程——电话号码查询系统
  19. 航天器/控制器飞行能够实现自主控制么?
  20. html创建盒子,HTML 盒子

热门文章

  1. iOS 使用socks5代理服务器
  2. UIL 算法学习 Structure Based User Identification across Social Networks
  3. IP 域名 DNS之间的区别
  4. “网剑行动”强势来袭,传统店铺“刷单”被打击的体无完肤,转型之路就在当下
  5. 使用python制作zip口令破解程序
  6. 多目标跟踪文献阅读笔记
  7. 零基础学Python(全彩版)
  8. 知识付费在线教育网课网校系统
  9. ios手游怎么投屏到电脑玩
  10. Web 前端代码规范