Swagger的学习
Swagger
- 号称世界上最流行的Api框架;
- RestFul Api文档在线自动生成工具=>Api文档与API定义同步更新
- 直接运行,可以在线测试API接口
- 支持多种语言:(Java,Php...)
在项目中使用Swagger需要springbox:
- swagger2
- ui
SpringBoot集成Swagger
1.新建一个SpringBoot-web项目
2.导入相关依赖(关于Swagger新版本(3.0.0)打不开swagger-ui.html:经过半天的排坑才发现,原来在swagger-ui3.0.0的jar包目录下找不到swagger-ui.html这个页面应该有其它的解决办法,我的解决办法就是把swagger的版本降低,降低到jar包配置路径下有swagger-ui.html的就行了,并不是我们配置的问题,降级直接换成2.9.2就可以进入)
<!-- springfox-swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<!-- springfox-swagger-ui -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
3.编写一个hello工程

4.配置Swagger=>config

package cn.dzp.swagger.config;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2 //开启Swagger2
public class SwaggerConfig {
}
5.测试运行

配置Swagger
Swagger的bean实例Docket
package cn.dzp.swagger.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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;
import java.util.ArrayList;
import static springfox.documentation.service.ApiInfo.DEFAULT_CONTACT;
@Configuration
@EnableSwagger2 //开启Swagger2
public class SwaggerConfig {
//配置了Swagger的Docket的bean
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
}
// 配置Swagger信息apiInfo
private ApiInfo apiInfo(){
// 作者信息
Contact contact = new Contact("邓疯子", "https://www.cnblogs.com/feng-zhi/", "2601920751@qq.com");
return new ApiInfo(
"邓疯子的SwaggerAPI文档",
"学到老活到老",
"v1.0",
"https://www.cnblogs.com/feng-zhi/",
contact,
"Apache 2.0",
"http://www.apache.org/licenses/LICENSE-2.0",
new ArrayList());
}
}
重启项目测试

Swagger配置扫描接口
Docket.select()

当过滤也开启时,不能扫到任何接口

关闭过滤了,我只选择了basePackage("cn.dzp.swagger.controller"),所以只能扫到我的HelloController

是否开启swagger enable(false),fasle表示不启动,默认true启动
编写工作环境,在判断环境选择是否开启swagger


当默认环境8080,失败
切换到dev环境8081查看项目成功

配置API文档的分组(groupName())


一个分组对应一个Docket的实例,多个分组需要实现多个实例(新建了三个分组实例)
@Bean
public Docket docket1(){
return new Docket(DocumentationType.SWAGGER_2).groupName("黄小姐");
}
@Bean
public Docket docket2(){
return new Docket(DocumentationType.SWAGGER_2).groupName("邓学长");
}
@Bean
public Docket docket3(){
return new Docket(DocumentationType.SWAGGER_2).groupName("Godas_lsy");
}
启动项目检查

实体类配置
编写实体类
package cn.dzp.swagger.pojo;
public class User {
public String username;
public String password;
}
控制层
// 只要接口中返回值存在实体类,他就会被扫描
@PostMapping("/user")
public User user(){
return new User();
}
}
开启项目

可以添加中文注释对于一些较难理解的类和属性


// ApiOperation接口不是放在类上的,是方法上
@ApiOperation("hello控制类")
@GetMapping("/hello2")
public String hello2(@ApiParam("用户名") String username){
return "hello"+username;
}

总结Swagger;
1.我们可以通过Swagger给一些比较难理解的属性或者接口,增加注释信息
2.接口文档实时更新
3.可以在线测试
Swagger是个优秀的工具,几乎所有大公司都有使用它
注意点:在正式发布的时候,关闭Swagger!!!出于安全考虑,而且节省运行的内存.
Swagger的学习的更多相关文章
- Swagger框架学习分享
Swagger框架学习分享 转至元数据结尾 Created and last modified by 刘新宇 大约1分钟曾经 pageId=162045803#page-metadata-start& ...
- Swagger - ui 学习
今天同组的打伙伴给介绍了 Swagger-ui 这个 自动生成 接口文档的 工具,感觉比较方便好用, 遂决定 学习一下, 开个随笔进行随时记录,同时也是提醒自己 先保存两篇感觉还不错的文章 : htt ...
- .net core webapi +ddd(领域驱动)+nlog配置+swagger配置 学习笔记(1)
搭建一个.net core webapi项目 在开始之前,请先安装最新版本的VS2017,以及最新的.net core 2.1. 首先创建一个Asp.Net Core Web应用程序 这个应用程序是 ...
- .net core webapi +ddd(领域驱动)+nlog配置+swagger配置 学习笔记(2)
DDD领域驱动模型设计 什么是DDD 软件开发不是一蹴而就的事情,我们不可能在不了解产品(或行业领域)的前提下进行软件开发,在开发前,通常需要进行大量的业务知识梳理,而后到达软件设计的层面,最后才是开 ...
- ASP.NET Core 1.0 中使用 Swagger 生成文档
github:https://github.com/domaindrivendev/Ahoy 之前文章有介绍在ASP.NET WebAPI 中使用Swagger生成文档,ASP.NET Core 1. ...
- Swagger API接口管理
介绍 Swagger API框架,用于管理项目中API接口,属当前最流行的API接口管理工具. Swagger功能强大,UI界面漂亮,支持在线测试等! Swagger包 ...
- 接口文档管理工具-Postman、Swagger、RAP(转载)
接口文档管理工具-Postman.Swagger.RAP 转自:http://www.51testing.com/html/10/n-3715910.html 在项目开发测试中,接口文档是贯穿始终的. ...
- 星舟平台的使用(GIT、spring Boot 的使用以及swagger组件的使用)
一.介绍星舟平台 1.星舟简介 2.网关kong的介绍 3.客户端 1).服务注册:Eureka 2).客户端负载均衡:Ribbon 4 ...
- Swagger学习笔记
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! Swagger学习笔记 课程目标 了解Swagger的概念及作用 掌握在项目中集成Swagger ...
随机推荐
- Linux 服务管理的两种方式service和systemctl
service命令 service命令其实是去/etc/init.d目录下,去执行相关程序 ``` # service命令启动redis脚本 service redis start # 直接启动red ...
- 【日志追踪】(微服务应用和单体应用)-logback中的MDC机制
一.MDC介绍 MDC(Mapped Diagnostic Contexts)映射诊断上下文,该特征是logback提供的一种方便在多线程条件下的记录日志的功能, 某些应用程序采用多线程的方式来处理多 ...
- Docker学习笔记---通俗易懂
目录 Docker 简介 Docker安装 Docker的基本组成 安装Docker 配置阿里云镜像加速 回顾helloworld流程 工作原理 Docker的常用命令 帮助命令 镜像命令 容器命令 ...
- Python 巡检接入钉钉机器人
前段时间,为了快速实现巡检服务器设备的健康状态,我简单的写了一个巡检工具,该工具已经可以满足我的大部分需求了,不过,每次都要自己手动去点击巡检才能知道今天设备的状态,由于每天巡检严重影响我学习逆向技术 ...
- 工具tip
1 postman: chrome的插件,模拟http的get.post等各种请求 2 010: 二进制文件查看,支持很多文件格式和强大的脚本:010 Editor体验 3 BeyondCompare ...
- Python 图片转字符图
pip install Image argparse pillow from PIL import Image import argparse #命令行输入参数处理 parser = argparse ...
- Swift系列二 - 循环控制
一.if-else if后面的条件可以省略小括号 条件后面的大括号不可以省略 let age = 10 if age >= 18 { print("大学") } else i ...
- Linux DRBD 主节点(Primary) 故障恢复测试
测试当主节点发生故障后,如何切换到备节点,当主节点恢复后,又是如何恢复双机数据同步的? 环境 DRBD linux VMware Workstation 9 步骤 1 模拟生产环境配置 1)环 ...
- MySQL分页优化_别再用offset和limit分页了
终于要对MySQL优化下手了,本文将对分页进行优化说明,希望可以得到一个合适你的方案. 开始之前,先分享一套MySQL教程,小白入门或者学习巩固都可以看 MySQL基础入门-mysql教程-数据库实战 ...
- 解决@Autowired警告
在使用spring框架中的依赖注入注解@Autowired时,idea报了一个警告 被警告的代码如下: @Autowired UserDao userDao; 警告提示信息:Field injecti ...