【天天报资讯】真的别再用Swagger了,你知道为什么吗?
2023-06-26 17:28:02 Java技术指北

哈喽,大家好,我是了不起。

首先,Swagger 这个工具能够自动生成 API 接口文档,在线调试,节省了很多书写文档的时间,非常强大。


(资料图)

但是,想要文档生成的合格,还是要书写大量的注解。有没有一种连注解都不用写的方式呢?

smart-doc简介

今天了不起给大家推荐一个技术:smart-doc,看名字就知道,它是 智能-文档。直接分析代码,根据代码含义生成文档(开个玩笑,它还没有那么智能);其实它是利用的注释,来生成文档,还是需要写注释的。

官方介绍:smart-doc是一款同时支持JAVA REST API和Apache Dubbo RPC接口文档生成的工具,smart-doc在业内率先提出基于JAVA泛型定义推导的理念, 完全基于接口源码来分析生成接口文档,不采用任何注解侵入到业务代码中。你只需要按照java-doc标准编写注释, smart-doc就能帮你生成一个简易明了的Markdown、HTML5、Postman Collection2.0+、OpenAPI 3.0+的文档。

swagger和smart-doc的对比

我们来看看swagger和smart-doc的区别

来看看smart-doc 的代码

如果是swagger 的写法,每个字段都要加上@ApiModelProperty("xxx")的注解,如果有几十个字段,几十个类,那代码量多的可不小。

不过这些类一般都是自动生成工具生成的,对写代码的人影响不大,不过这样子写倒是简洁了不少,甚得我意~

可能有人就说了,我不写注释,只写swagger注解,看起来也很简洁,这也确实没错。

确实看起来很简洁,不过没有文档注释的情况下,在其他类里你是看不到这个字段的解释的,每次找字段都得回到这个类看看到底是不是这个字段。如果你和同事们的英语都 very good,当我没说。

如果是api接口,smart-doc想要生成文档,需要写成这样(好像看起来什么都没写)

而swagger就需要加上@ApiOperation()这个注解,如果是个参数多的接口,还需要@ApiImplicitParams()这个注解,徒增学习成本

使用smart-doc

总共需要3步:

1.引入pom依赖,是一个插件

    com.github.shalousun    smart-doc-maven-plugin    ${smart-doc-plugin.version}                    ${basedir}/src/main/resources/smart-doc.json                ${project.name}                                            com.fu:common-.*            com.fu:generator                                                compile                            openapi                        

2.编写smart-doc.json文件

{  // 参考文档:https://smart-doc-group.github.io/#/zh-cn/start/quickstart  "outPath": "D:\\111",  "coverOld": true,  "allInOne": true, // 是否将文档合并到一个文件中,一般推荐为true  "createDebugPage": true,//@since 2.0.0 smart-doc支持创建可以测试的html页面,仅在AllInOne模式中起作用。  "isStrict": false, //是否开启严格模式  // controller包过滤,多个包用英文逗号隔开  "packageFilters": "com.fu.system.controller.*",  "projectName": "system",  "sortByTitle": true, // 接口排序  "ignoreRequestParams":[ //忽略请求参数对象,把不想生成文档的参数对象屏蔽掉,@since 1.9.2    "javax.servlet.http.HttpServletRequest",    "javax.servlet.http.HttpServletResponse",    "javax.servlet.http.HttpSession"   ]}

3.运行这个插件,如果很熟悉mvn命令,在命令行运行它也行;可以生成openapi、postman、html、Markdown等各种格式的文档

关于pom 和 smart-doc.json 的配置,具体配置可前往官方文档查看:

https://smart-doc-group.github.io/#/zh-cn/?id=smart-doc

文档自动化

如果它不能和swagger一样,自动部署文档,还得手动,那也不会来推荐这个了。

官方推荐方式:smart-doc + Torna

需要额外部署一个 Torna 文档接口服务,类似 yapi;很多企业也都是单独部署的接口文档服务。

可以看出来界面比swagger好太多了

了不起这里给大家另一种方案,本地自动部署,smart-doc + apifox(postman应该也可以)

apifox -> 接口导入 -> 自动同步

这个数据源URL可以直接配置为file:///D:/111/openapi.json,在你配置pom的时候,直接配置成编译项目时生成 openapi格式的文档,就可以自动部署到apifox,完美~

小结

今天了不起对这个smart-doc就介绍到这里了,感兴趣的小伙伴可以用起来了,对代码0侵入,简直太适合我这种强迫症患者了。

热门推荐

文章排行

  1. 2023-06-26【天天报资讯】真的别再用Swagger了,你知道为什么吗?
  2. 2023-06-26中国第一影后的大瓜,三观炸裂|环球观热点
  3. 2023-06-26合肥市颐和佳苑小学报名咨询电话是多少
  4. 2023-06-26环球热推荐:巴西对华光缆产品发起反补贴调查
  5. 2023-06-26即时看!excel2003文本型数字转为数字 excel文本类型转数字
  6. 2023-06-26热头条丨2023-6-25 数据
  7. 2023-06-26长沙:拟用住房公积金增值收益购买1100余套公租房
  8. 2023-06-26无障碍环境建设法草案三审 鼓励编写、出版盲文版、低视力版教学用书
  9. 2023-06-26本科助学班是什么(什么是全日制本科助学班?)
  10. 2023-06-26最新:青浦新辟调整8条公交线路,快来看看经不经过你家门口
  11. 2023-06-26今热点:双辽市支行推进一体化整改系统
  12. 2023-06-25湖北4名货车司机上榜全国“最美货车司机”
  13. 2023-06-25美团升级“美团服务区”概念-环球热讯
  14. 2023-06-25全球资讯:Red Dead Redemption 2和The Touryst等游戏在本周的黄金特惠中打折
  15. 2023-06-25德阳市2023年第二季度基层统战工作现场推进会召开
  16. 2023-06-25重拾儿时梦想 本科毕业后我踏上留学之路
  17. 2023-06-25天天热点!6月中旬名优白酒环比价格指数下跌0.05%
  18. 2023-06-25官方 : 肖克罗斯回归斯托克城,并担任u18教练-天天速讯
  19. 2023-06-25开封通许县竖岗镇:防范于未“燃” 守护“瓶”安
  20. 2023-06-25海报|人人讲安全⑥:生产经营单位主要负责人应履行哪些安全生产职责