0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

swagger和smart-doc的區(qū)別

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-09-30 16:08 ? 次閱讀

首先,Swagger 這個(gè)工具能夠自動(dòng)生成 API 接口文檔,在線調(diào)試,節(jié)省了很多書寫文檔的時(shí)間,非常強(qiáng)大。

但是,想要文檔生成的合格,還是要書寫大量的注解。有沒有一種連注解都不用寫的方式呢?

smart-doc簡(jiǎn)介

今天了不起給大家推薦一個(gè)技術(shù):smart-doc,看名字就知道,它是 智能-文檔。直接分析代碼,根據(jù)代碼含義生成文檔(開個(gè)玩笑,它還沒有那么智能);其實(shí)它是利用的注釋,來生成文檔,還是需要寫注釋的。

官方介紹:smart-doc是一款同時(shí)支持JAVA REST API和Apache Dubbo RPC接口文檔生成的工具,smart-doc在業(yè)內(nèi)率先提出基于JAVA泛型定義推導(dǎo)的理念, 完全基于接口源碼來分析生成接口文檔,不采用任何注解侵入到業(yè)務(wù)代碼中。你只需要 按照java-doc標(biāo)準(zhǔn)編寫注釋 , smart-doc就能幫你生成一個(gè)簡(jiǎn)易明了的Markdown、HTML5、Postman Collection2.0+、OpenAPI 3.0+的文檔。

swagger和smart-doc的對(duì)比

我們來看看swagger和smart-doc的區(qū)別

來看看smart-doc 的代碼

圖片

如果是swagger 的寫法,每個(gè)字段都要加上 @ApiModelProperty("xxx") 的注解,如果有幾十個(gè)字段,幾十個(gè)類,那代碼量多的可不小。

不過這些類一般都是自動(dòng)生成工具生成的,對(duì)寫代碼的人影響不大,不過這樣子寫倒是簡(jiǎn)潔了不少,甚得我意~

可能有人就說了,我不寫注釋,只寫swagger注解,看起來也很簡(jiǎn)潔,這也確實(shí)沒錯(cuò)。

圖片

確實(shí)看起來很簡(jiǎn)潔,不過沒有文檔注釋的情況下,在其他類里你是看不到這個(gè)字段的解釋的,每次找字段都得回到這個(gè)類看看到底是不是這個(gè)字段。如果你和同事們的英語(yǔ)都 very good,當(dāng)我沒說。

如果是api接口,smart-doc想要生成文檔,需要寫成這樣(好像看起來什么都沒寫)

圖片

而swagger就需要加上@ApiOperation()這個(gè)注解,如果是個(gè)參數(shù)多的接口,還需要@ApiImplicitParams()這個(gè)注解,徒增學(xué)習(xí)成本

圖片

使用smart-doc

總共需要3步:

  1. 引入pom依賴,是一個(gè)插件

    
    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, // 是否將文檔合并到一個(gè)文件中,一般推薦為true
      "createDebugPage": true,//@since 2.0.0 smart-doc支持創(chuàng)建可以測(cè)試的html頁(yè)面,僅在AllInOne模式中起作用。
      "isStrict": false, //是否開啟嚴(yán)格模式
      // controller包過濾,多個(gè)包用英文逗號(hào)隔開
      "packageFilters": "com.fu.system.controller.*",
      "projectName": "system",
      "sortByTitle": true, // 接口排序
      "ignoreRequestParams":[ //忽略請(qǐng)求參數(shù)對(duì)象,把不想生成文檔的參數(shù)對(duì)象屏蔽掉,@since 1.9.2
        "javax.servlet.http.HttpServletRequest",
        "javax.servlet.http.HttpServletResponse",
        "javax.servlet.http.HttpSession"
       ]
    }
    
  3. 運(yùn)行這個(gè)插件,如果很熟悉mvn命令,在命令行運(yùn)行它也行;可以生成openapi、postman、html、Markdown等各種格式的文檔

    圖片

關(guān)于pom 和 smart-doc.json 的配置,具體配置可前往官方文檔查看:

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

文檔自動(dòng)化

如果它不能和swagger一樣,自動(dòng)部署文檔,還得手動(dòng),那也不會(huì)來推薦這個(gè)了。

官方推薦方式:smart-doc + Torna (http://torna.cn/) 組成行業(yè)領(lǐng)先的文檔生成和管理解決方案,使用smart-doc無侵入完成Java源代碼分析和提取注釋生成API文檔,自動(dòng)將文檔推送到Torna企業(yè)級(jí)接口文檔管理平臺(tái)。

需要額外部署一個(gè) Torna 文檔接口服務(wù),類似 yapi;很多企業(yè)也都是單獨(dú)部署的接口文檔服務(wù)。

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

圖片

了不起這里給大家另一種方案,本地自動(dòng)部署,smart-doc + apifox(postman應(yīng)該也可以)

apifox -> 接口導(dǎo)入 -> 自動(dòng)同步

圖片

圖片

這個(gè)數(shù)據(jù)源URL可以直接配置為 file:///D:/111/openapi.json,在你配置pom的時(shí)候,直接配置成編譯項(xiàng)目時(shí)生成 openapi格式的文檔,就可以自動(dòng)部署到apifox,完美~

小結(jié)

今天了不起對(duì)這個(gè)smart-doc就介紹到這里了,感興趣的小伙伴可以用起來了,對(duì)代碼0侵入,簡(jiǎn)直太適合我這種強(qiáng)迫癥患者了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8447

    瀏覽量

    150720
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1472

    瀏覽量

    61749
  • SMART
    +關(guān)注

    關(guān)注

    3

    文章

    223

    瀏覽量

    44642
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2943

    瀏覽量

    66617
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    藍(lán)牙BR/EDR 和Bluetooth Smart的十大重要區(qū)別

    (藍(lán)牙基本速率/增強(qiáng)數(shù)據(jù)率)和Bluetooth Smart 技術(shù)。本文將全面解析這兩種技術(shù)之間的區(qū)別,加深你對(duì)藍(lán)牙技術(shù)的了解!
    發(fā)表于 12-08 17:20 ?1.7w次閱讀
    藍(lán)牙BR/EDR 和Bluetooth <b class='flag-5'>Smart</b>的十大重要<b class='flag-5'>區(qū)別</b>

    swaggersmart-doc區(qū)別

    smart-doc簡(jiǎn)介 今天了不起給大家推薦一個(gè)技術(shù):smart-doc,看名字就知道,它是 智能-文檔。直接分析代碼,根據(jù)代碼含義生成文檔(開個(gè)玩笑,它還沒有那么智能);其實(shí)它是利用的注釋,來生成文檔,還是需要寫注釋的。 官方介紹:
    的頭像 發(fā)表于 09-30 10:01 ?476次閱讀
    <b class='flag-5'>swagger</b>和<b class='flag-5'>smart-doc</b>的<b class='flag-5'>區(qū)別</b>

    藍(lán)牙BR/EDR和Bluetooth Smart區(qū)別在哪里?

    藍(lán)牙BR/EDR和Bluetooth Smart區(qū)別在哪里?
    發(fā)表于 05-20 06:49

    單片機(jī)原理與應(yīng)用DOC

    單片機(jī)原理與應(yīng)用DOC
    發(fā)表于 03-21 20:28 ?59次下載

    TM-CIA與TMvideoDVR通訊協(xié)議.doc

    TM-CIA與TMvideoDVR通訊協(xié)議.doc
    發(fā)表于 04-05 00:00 ?23次下載

    數(shù)字電子技術(shù)基礎(chǔ)教案.doc下載

    數(shù)字電子技術(shù)基礎(chǔ)教案.doc 緒論.doc
    發(fā)表于 05-27 09:43 ?0次下載

    常用晶振型號(hào).doc

    常用晶振型號(hào).doc  帶寬又叫頻寬是指在固定的的時(shí)間可傳輸?shù)馁Y料數(shù)量,亦即在傳輸管道中可以傳遞數(shù)據(jù)
    發(fā)表于 02-09 14:51 ?195次下載

    doc文件用什么打開

    doc文件用什么打開 doc即微軟件公司的word文檔格式,這個(gè)問題算是初學(xué)電腦者的問題了?,F(xiàn)在介紹一下打開軟件及方法。 首先當(dāng)然是用微軟件公
    發(fā)表于 11-13 16:14 ?6.1w次閱讀
    <b class='flag-5'>doc</b>文件用什么打開

    PHPExcel_1.8.0_doc

    PHPExcel_1.8.0_doc,感興趣的可以看看。
    發(fā)表于 08-24 18:31 ?2次下載

    實(shí)用Altium Designer使用教程【DOC

    實(shí)用Altium Designer使用教程【DOC
    發(fā)表于 01-22 13:38 ?112次下載

    開關(guān)電源原理及分類.doc

    開關(guān)電源原理及分類.doc(電源技術(shù)在線作業(yè))-開關(guān)電源原理及分類.doc
    發(fā)表于 08-04 16:26 ?18次下載
    開關(guān)電源原理及分類.<b class='flag-5'>doc</b>

    如何搭建 Swagger API文檔平臺(tái)

    , TurnAPI , Swagger 。今天我就來教大家如何使用 Swagger 搭建 API 文檔,并且配置權(quán)限使用。畢竟開發(fā)文檔還是內(nèi)容使用的為好,萬一上線到生產(chǎn)環(huán)境,沒有關(guān)swagger 又沒有
    的頭像 發(fā)表于 10-09 15:37 ?744次閱讀
    如何搭建 <b class='flag-5'>Swagger</b> API文檔平臺(tái)

    LED與OLED的區(qū)別

    電子發(fā)燒友網(wǎng)站提供《LED與OLED的區(qū)別.doc》資料免費(fèi)下載
    發(fā)表于 11-02 14:42 ?4次下載
    LED與OLED的<b class='flag-5'>區(qū)別</b>

    PLC西門子S7-200smart和S7-1200的區(qū)別?

    PLC西門子S7-200smart和S7-1200的區(qū)別? 西門子S7-200 smart和S7-1200是西門子公司推出的兩個(gè)PLC產(chǎn)品系列,用于工業(yè)自動(dòng)化控制系統(tǒng)。雖然它們都屬于西門子的S7系列
    的頭像 發(fā)表于 11-17 11:41 ?9525次閱讀

    DDR2與DDR的區(qū)別

    電子發(fā)燒友網(wǎng)站提供《DDR2與DDR的區(qū)別.doc》資料免費(fèi)下載
    發(fā)表于 03-07 14:58 ?0次下載