0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

swagger和smart-doc的区别

科技绿洲 来源:Java技术指北 作者:Java技术指北 2023-09-30 16:08 次阅读

首先,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依赖,是一个插件

    < !-- smart-doc插件 -- >
    plugin>
        groupId>com.github.shalousun< /groupId>
        artifactId>smart-doc-maven-plugin< /artifactId>
        version>${smart-doc-plugin.version}< /version>
        configuration>
            < !--指定生成文档的使用的配置文件-- >
            configFile>${basedir}/src/main/resources/smart-doc.json< /configFile>
            < !--指定项目名称-- >
            projectName>${project.name}< /projectName>
            excludes>
                < !--格式为:groupId:artifactId;参考如下-- >
                < !--也可以支持正则式如:com.alibaba:.* -- >
                exclude>com.fu:common-.*< /exclude>
                exclude>com.fu:generator< /exclude>
            < /excludes>
        < /configuration>
        executions>
            execution>
                < !--如果不需要在执行编译时启动smart-doc,则将phase注释掉-- >
                phase>compile< /phase>
                goals>
                    goal>openapi< /goal>
                < /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侵入,简直太适合我这种强迫症患者了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    7643

    浏览量

    148520
  • API
    API
    +关注

    关注

    2

    文章

    1384

    浏览量

    60994
  • SMART
    +关注

    关注

    3

    文章

    219

    浏览量

    44409
  • 源代码
    +关注

    关注

    95

    文章

    2929

    浏览量

    66064
收藏 人收藏

    评论

    相关推荐

    swaggersmart-doc区别

    呢? smart-doc简介 今天了不起给大家推荐一个技术:smart-doc,看名字就知道,它是 智能-文档。直接分析代码,根据代码含义生成文档(开个玩笑,它还没有那么智能);其实它是利用的注释,来生成文档,还是需要写注释的。 官方介绍:
    的头像 发表于 09-30 10:01 297次阅读
    <b class='flag-5'>swagger</b>和<b class='flag-5'>smart-doc</b>的<b class='flag-5'>区别</b>

    机智云【API】多pk分组&用户场景&通用定时任务api已经发布

    分组时不需要指定 pk ,多 pk 分组目前仅提供分组功能,目前不支持组远程控制和组定时任务。接口地址:http://swagger.gizwits.com/doc/index
    发表于 08-31 11:24

    S7-200SMART与S7-200的区别是什么

    ,发现S7-200 SMART和S7-200的指令基本上相同。区别如下(与硬件的差异有关):  1.通信指令GIP ADDR和SIP ADDR取代了S7-200的NETR(网络读取)和NETW(网络写入
    发表于 12-04 16:21

    蓝牙BR/EDR和Bluetooth Smart区别在哪里?

    蓝牙BR/EDR和Bluetooth Smart区别在哪里?
    发表于 05-20 06:49

    求解RT-Thread Smart 微内核最小系统移植教程?

    rt-smart跟rtthread的区别??学会单片机就可以学会rt-smart了吗
    发表于 10-13 06:23

    单片机原理与应用DOC

    单片机原理与应用DOC
    发表于 03-21 20:28 59次下载

    项目部上墙图表DOC

    项目部上墙图表DOC
    发表于 04-22 01:26 65次下载

    数字电子技术基础教案.doc下载

    数字电子技术基础教案.doc 绪论.doc
    发表于 05-27 09:43 0次下载

    常用晶振型号.doc

    常用晶振型号.doc  带宽又叫频宽是指在固定的的时间可传输的资料数量,亦即在传输管道中可以传递数据
    发表于 02-09 14:51 195次下载

    doc文件用什么打开

    doc文件用什么打开 doc即微软件公司的word文档格式,这个问题算是初学电脑者的问题了。现在介绍一下打开软件及方法。 首先当然是用微软件公
    发表于 11-13 16:14 6.1w次阅读
    <b class='flag-5'>doc</b>文件用什么打开

    实用Altium Designer使用教程【DOC

    实用Altium Designer使用教程【DOC
    发表于 01-22 13:38 105次下载

    開關電源原理及分類.doc

    開關電源原理及分類.doc(电源技术在线作业)-開關電源原理及分類.doc
    发表于 08-04 16:26 18次下载
    開關電源原理及分類.<b class='flag-5'>doc</b>

    如何搭建 Swagger API文档平台

    , TurnAPI , Swagger 。今天我就来教大家如何使用 Swagger 搭建 API 文档,并且配置权限使用。毕竟开发文档还是内容使用的为好,万一上线到生产环境,没有关swagger 又没有
    的头像 发表于 10-09 15:37 244次阅读
    如何搭建 <b class='flag-5'>Swagger</b> API文档平台

    LED与OLED的区别

    电子发烧友网站提供《LED与OLED的区别.doc》资料免费下载
    发表于 11-02 14:42 4次下载
    LED与OLED的<b class='flag-5'>区别</b>

    PLC西门子S7-200smart和S7-1200的区别

    PLC西门子S7-200smart和S7-1200的区别? 西门子S7-200 smart和S7-1200是西门子公司推出的两个PLC产品系列,用于工业自动化控制系统。虽然它们都属于西门子的S7系列
    的头像 发表于 11-17 11:41 4881次阅读