百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

真的别再用swagger了

liuian 2025-02-26 12:45 14 浏览

首先,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依赖,是一个插件
    <plugin>
    <groupId>com.github.shalousungroupId
    >
    <artifactId>smart-doc-maven-pluginartifactId>
    <version>${smart-doc-plugin.version}version>
    <configuration>

    <configFile>${basedir}/src/main/resources/smart-doc.jsonconfigFile
    >

    <projectName>${project.name}projectName
    >
    <excludes>


    <exclude>com.fu:common-.*exclude
    >
    <exclude>com.fu:generatorexclude>
    excludes>
    configuration>
    <executions>
    <execution>

    <phase>compilephase
    >
    <goals>
    <goal>openapigoal>
    goals>
    execution>
    executions>
    plugin>
  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 (http://torna.cn/) 组成行业领先的文档生成和管理解决方案,使用smart-doc无侵入完成Java源代码分析和提取注释生成API文档,自动将文档推送到Torna企业级接口文档管理平台。

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

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

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

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

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

小结

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

要注意风险:毕竟传闻都说注释写的好的人容易吃亏~~~

相关推荐

2023年最新微信小程序抓包教程(微信小程序 抓包)

声明:本公众号大部分文章来自作者日常学习笔记,部分文章经作者授权及其他公众号白名单转载。未经授权严禁转载。如需转载,请联系开百。请不要利用文章中的相关技术从事非法测试。由此产生的任何不良后果与文...

测试人员必看的软件测试面试文档(软件测试面试怎么说)

前言又到了毕业季,我们将会迎来许多需要面试的小伙伴,在这里呢笔者给从事软件测试的小伙伴准备了一份顶级的面试文档。1、什么是bug?bug由哪些字段(要素)组成?1)将在电脑系统或程序中,隐藏着的...

复活,视频号一键下载,有手就会,长期更新(2023-12-21)

视频号下载的话题,也算是流量密码了。但也是比较麻烦的问题,频频失效不说,使用方法也难以入手。今天,奶酪就来讲讲视频号下载的新方案,更关键的是,它们有手就会有用,最后一个方法万能。实测2023-12-...

新款HTTP代理抓包工具Proxyman(界面美观、功能强大)

不论是普通的前后端开发人员,还是做爬虫、逆向的爬虫工程师和安全逆向工程,必不可少会使用的一种工具就是HTTP抓包工具。说到抓包工具,脱口而出的肯定是浏览器F12开发者调试界面、Charles(青花瓷)...

使用Charles工具对手机进行HTTPS抓包

本次用到的工具:Charles、雷电模拟器。比较常用的抓包工具有fiddler和Charles,今天讲Charles如何对手机端的HTTS包进行抓包。fiddler抓包工具不做讲解,网上有很多fidd...

苹果手机下载 TikTok 旧版本安装包教程

目前苹果手机能在国内免拔卡使用的TikTok版本只有21.1.0版本,而AppStore是高于21.1.0版本,本次教程就是解决如何下载TikTok旧版本安装包。前期准备准备美区...

【0基础学爬虫】爬虫基础之抓包工具的使用

大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬...

防止应用调试分析IP被扫描加固实战教程

防止应用调试分析IP被扫描加固实战教程一、概述在当今数字化时代,应用程序的安全性已成为开发者关注的焦点。特别是在应用调试过程中,保护应用的网络安全显得尤为重要。为了防止应用调试过程中IP被扫描和潜在的...

一文了解 Telerik Test Studio 测试神器

1.简介TelerikTestStudio(以下称TestStudio)是一个易于使用的自动化测试工具,可用于Web、WPF应用的界面功能测试,也可以用于API测试,以及负载和性能测试。Te...

HLS实战之Wireshark抓包分析(wireshark抓包总结)

0.引言Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接...

信息安全之HTTPS协议详解(加密方式、证书原理、中间人攻击 )

HTTPS协议详解(加密方式、证书原理、中间人攻击)HTTPS协议的加密方式有哪些?HTTPS证书的原理是什么?如何防止中间人攻击?一:HTTPS基本介绍:1.HTTPS是什么:HTTPS也是一个...

Fiddler 怎么抓取手机APP:抖音、小程序、小红书数据接口

使用Fiddler抓取移动应用程序(APP)的数据接口需要进行以下步骤:首先,确保手机与计算机连接在同一网络下。在计算机上安装Fiddler工具,并打开它。将手机的代理设置为Fiddler代理。具体方...

python爬虫教程:教你通过 Fiddler 进行手机抓包

今天要说说怎么在我们的手机抓包有时候我们想对请求的数据或者响应的数据进行篡改怎么做呢?我们经常在用的手机手机里面的数据怎么对它抓包呢?那么...接下来就是学习python的正确姿势我们要用到一款强...

Fiddler入门教程全家桶,建议收藏

学习Fiddler工具之前,我们先了解一下Fiddler工具的特点,Fiddler能做什么?如何使用Fidder捕获数据包、修改请求、模拟客户端向服务端发送请求、实施越权的安全性测试等相关知识。本章节...

fiddler如何抓取https请求实现手机抓包(100%成功解决)

一、HTTP协议和HTTPS协议。(1)HTTPS协议=HTTP协议+SSL协议,默认端口:443(2)HTTP协议(HyperTextTransferProtocol):超文本传输协议。默认...