持续创作,加速成长!这是我参与「掘金日新计划 · 6月更文挑战」的第1天,点击查看活动详情
- 今天正好在项目用到了springDoc,正好借这个机会来给大家介绍以下。
swagger和springDoc对比
Swagger优点:1、节省了开发者的时间写文档,降低了后续维护代码的复杂度。2、Swagger提供了在线调用postman的接口。服务写完后可直接运行项目,然后点击测试,提高了测试效率。
有人可能问了,既然swagger有优点,为什么我还需要换其他的,接下来我们浅谈下他的缺点。
swagger缺点: 1、目前的Swagger已经停止维护了,最近的一次更新已经在2017年了。2、Swagger依赖于大量注解,为了使描述接口文档描述的更详细,你可能需要对每一个字段都加个注解,可能如下图所示
3、 Swagger 不支持自定义接口文档,不能指明某一个功能需要使用哪些接口,有什么注意事项
如果单纯的就想用springDoc,那们就从下面开始做学一下吧。
springDoc优点:1、零侵入,我们来看下演示应用程序的源代码(演示应用程序的源代码地址:(gitee.com/smart-doc-t… OpenAPI 3 库 (springdoc.org)](springdoc.org/index.html#…
2、根据标准的java注释即可生成文档
1、添加依赖
**< dependency >
< groupId > **org.springdoc **</ groupId >
< artifactId > **springdoc-openapi-ui **</ artifactId >
< version > **1.6.5 </ version >
</ dependency >
2、配置srpingDoc类,可以通过编程类,可以通过注解实现,本文采用的是第一种,在结尾附上通过注解实现。
package ics.imedx.visit.config;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
/**
* @description 配置类
* @author yxg
* @since 2022-06-12
*/
public class SpringDocConfig {
@Bean
public OpenAPI createApi(){
return new OpenAPI().info(getInfo());
}
// 创建元数据
private Info getInfo(){
return new Info()
// 标题
.title("SpringDoc 接口文档")
// 简短描述
.description("基于OpenAPI 3的API文档生成工具")
// 指向服务条款的URL地址,必须是URL地址格式
.termsOfService("http://localhost:8081")
// 公开的API的联系人信息
.contact(createCon())
// API文档的版本信息
.version("0.1");
}
// 创建公开的API的联系人信息
private Contact createCon(){
return new Contact()
.email("3478569943@qq.com")
.name("yxg")
.url("http://9008.com");
}
}
3、使用注解
4、启动
地址为http://ip+端口号/doc/index.html 这样就我们就可以正常使用springDoc文档了
附上springDoc配置注解
{
"serverUrl": "http://localhost:8080", -- 服务器地址
"allInOne": true, -- 是否将文档合并到一个文件中,一般推荐为true
"outPath": "src/main/resources/static/doc", -- 指定文档的输出路径
"createDebugPage": true, -- 开启测试
"allInOneDocFileName":"index.html", -- 自定义文档名称
"projectName": "初识smart-doc" -- 项目名称
}