java spring boot Swagger安装及使用
https://springdoc.org/
可能原因分析 🔍
原因 1:SpringFox 版本与 Spring Boot 版本不兼容 ❌
SpringFox 3.0.0 不完全兼容 Spring Boot 2.6+ 及更高版本,可能导致 NullPointerException。
Spring Boot 3.x 完全不支持 SpringFox,必须使用 springdoc-openapi 替代。
java spring boot Swagger 安装及使用
在前后端分离开发的过程中,前端和后端需要进行api对接进行交互,就需要一个api规范文档,方便前后端的交互,但api文档不能根据代码的变化发生实时动态的改变,这样后端修改了接口,前端不能及时获取最新的接口,导致调用出错,需要手动维护api文档,加大了开发的工作量和困难,而swagger的出现就是为了解决这一系列的问题。
Swagger是一套基于OpenAPI规范构建的开源工具,使用RestApi
代码变,文档变
跨语言,支持多种语言
Swagger-ui 呈现出来的是一份可交互式的API文档,可以直接在文档页面尝试API的调用
可以将文档规范导入相关工具(postman、soapui),这些工具将会为我们自动地创建自动化测试
RestApi格式是根据请求的方式决定本次请求的一个操作,譬如:get–>读,post–>写(增、删、改),put–>修改,delete–>删除
OpenApi与语言无关,只是一种规范,可以使用yaml和json格式进行编写,这样更利于我们和机器进行阅读
Swagger主要包含了以下三个部分:
Swagger editor:基于浏览器的编辑器,我们可以使用它编写我们OpenApi规范(yaml或者json配置)
Swagger UI:他会将我们编写的OpenApi规范呈现为交互式的API文档,后文我将使用浏览器来查看并且操作我们的RestApi
Swagger Codegen:它可以通过OpenApi规范定义的任何API生成服务器存根和客户端SDK来简化构建过程
springfox
使用swagger时如果碰见版本更新迭代时,只需要更改swagger的描述文件即可,但是在频繁的更新项目版本时很多开发人员认为即使修改描述文件(yml或json文件)也是一定的工作负担,久而久之就直接修改代码,而不去修改描述文件了,这样基于描述文件生成接口文档也失去了意义。
Marty Pitt编写了一个基于spring的组件swagger-springmvc,Spring-fox就是根据这个组件发展而来的全新项目;
Spring-fox是根据代码生成接口文档,所以正常的进行更新项目版本,修改代码即可,而不需要跟随修改描述文件(yml或json文件);
spring-fox利用自身AOP特性,把swagger集成进来,底层还是Swagger,但是使用起来却方便很多,所以在实际开发中,都是直接使用spring-fox。