今天使用了以下swagger2 的3.0.0版本,好家伙,好多坑。在这里记录一下,方便查阅。
官网:https://swagger.io/
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger 消除了调用服务时可能会有的猜测。
非常适合前后分离的项目,后端人员提供swagger页面,前端使用,比接口文档更加方便。
Tips:
springboot 与 swagger有版本兼容问题,springboot 2.7.x版本不能使用swagger2
2.x版本,需要升级为3.x版本。 当然,条件允许,也可以降低springboot的版本为2.5.x版本。
io.springfox springfox-boot-starter 3.0.0
spring:mvc:pathmatch:matching-strategy: ant_path_matcher
如果这些信息不需要修改,可以不创建当前config,直接在主程序上写@EnableOpenApi配置即可。
@Configuration
@EnableOpenApi
public class SwaggerConfig {@Beanpublic Docket apiConfig() {return new Docket(DocumentationType.SWAGGER_2)//获取接口信息.apiInfo(getApiInfo())//指定主机域名,填写域名后,各个请求都会使用到域名
// .host("https://www.zhangdl.cn/")//分组.groupName("systemManager").select()//扫描指定位置.apis(RequestHandlerSelectors.basePackage("cn.zhangdl.tech_training.controller"))//-------- 指定扫描路径 --------.paths(PathSelectors.any()).build();}private ApiInfo getApiInfo() {return new ApiInfoBuilder()//标题.title("系统接口文档")//描述.description("此文档为系统接口说明,配置及相关注解")//许可证.license("Swagger2 api")//许可证地址.license("https://www.github.com")//服务条款地址.termsOfServiceUrl("https://www.spring.io")//版本.version("1.0.0")//维护人信息.contact(new Contact("zhangdl", "https://blog.csdn.net/qq_41404112", "zhangdl945@163.com")).build();}
}
@RestController
@Api(tags = "项目前的环境测试接口")
public class TestController {@ApiOperation(value = "测试Swagger")@GetMapping("hello")public String hello(){return "hello";}
}
访问路径:http://localhost:8080/swagger-ui/index.html
相较于swagger2 2.x版本,路径也有变化哦
这里会记录一些swagger的其他功能介绍,后面补充。