spring boot集成smart-doc自動生成接口文檔

1哼蛆,基于maven項目來完成smart-doc接口文檔的生成

在pom.xml文件添加插件依賴

<plugin>

<groupId>com.github.shalousun</groupId>

<artifactId>smart-doc-maven-plugin</artifactId>

<version>2.0.1</version>

<configuration>

<!--指定生成文檔使用的配置文件-->

<configFile>./src/main/resources/smart-doc.json</configFile>

<projectName>測試</projectName>

</configuration>

<executions>

<execution>

<!--不需要在編譯項目時自動生成文檔可注釋phase-->

<phase>compile</phase>

<goals>

<goal>html</goal>

</goals>

</execution>

</executions>

</plugin>

2,指定生成文檔的json配置文件

如上:在resources目錄新建一個json文件义屏,該文件主要提供接口地址乡范,接口請求頭,請求公共參數(shù),響應(yīng)公共參數(shù)杨耙,響應(yīng)碼文件的配置。

這里提供一份文件參考:

{

? "serverUrl": "http://127.0.0.1", //設(shè)置服務(wù)器地址,非必須

? "isStrict": false, //是否開啟嚴(yán)格模式

? "allInOne": true,? //是否將文檔合并到一個文件中飘痛,一般推薦為true

? "outPath": "D://md2", //指定文檔的輸出路徑

? "coverOld": true,? //是否覆蓋舊的文件珊膜,主要用于mardown文件覆蓋

? "packageFilters": "",//controller包過濾,多個包用英文逗號隔開

? "style":"xt256", //基于highlight.js的代碼高亮設(shè)置宣脉,喜歡配色統(tǒng)一簡潔的同學(xué)可以不設(shè)置

? "createDebugPage": true,//@since 2.0.0 smart-doc支持創(chuàng)建可以測試的html頁面车柠,僅在AllInOne模式中起作用。

? "md5EncryptedHtmlName": false,//只有每個controller生成一個html文件是才使用

? "projectName": "smart-doc",//配置自己的項目名稱

? "skipTransientField": true,//目前未實現(xiàn)

? "showAuthor":true,//是否顯示接口作者名稱,默認(rèn)是true,不想顯示可關(guān)閉

? "requestFieldToUnderline":true, //自動將駝峰入?yún)⒆侄卧谖臋n中轉(zhuǎn)為下劃線格式,//@since 1.8.7 版本開始

? "responseFieldToUnderline":true,//自動將駝峰入?yún)⒆侄卧谖臋n中轉(zhuǎn)為下劃線格式,//@since 1.8.7 版本開始

? "inlineEnum":true,//設(shè)置為true會將枚舉詳情展示到參數(shù)表中竹祷,默認(rèn)關(guān)閉谈跛,//@since 1.8.8版本開始

? "recursionLimit":7,//設(shè)置允許遞歸執(zhí)行的次數(shù)用于避免棧溢出,默認(rèn)是7塑陵,正常為3次以內(nèi)感憾,//@since 1.8.8版本開始

? "displayActualType":false,//配置true會在注釋欄自動顯示泛型的真實類型短類名,@since 1.9.6

? "ignoreRequestParams":[ //忽略請求參數(shù)對象令花,把不想生成文檔的參數(shù)對象屏蔽掉阻桅,@since 1.9.2

? ? ? "org.springframework.ui.ModelMap"

? ],

? "dataDictionaries": [ //配置數(shù)據(jù)字典,沒有需求可以不設(shè)置

? ? {

? ? ? "title": "http狀態(tài)碼字典", //數(shù)據(jù)字典的名稱

? ? ? "enumClassName": "com.power.common.enums.HttpCodeEnum", //數(shù)據(jù)字典枚舉類名稱

? ? ? "codeField": "code",//數(shù)據(jù)字典字典碼對應(yīng)的字段名稱

? ? ? "descField": "message"http://數(shù)據(jù)字典對象的描述信息字典

? ? }

? ],

? "errorCodeDictionaries": [{ //錯誤碼列表兼都,沒有需求可以不設(shè)置

? ? "title": "title",

? ? "enumClassName": "com.power.common.enums.HttpCodeEnum", //錯誤碼枚舉類,如果是枚舉是在一個類中定義則用$鏈接類BaseErrorCode$Common

? ? "codeField": "code",//錯誤碼的code碼字段名稱

? ? "descField": "message"http://錯誤碼的描述信息對應(yīng)的字段名

? }],

? "revisionLogs": [ //設(shè)置文檔變更記錄嫂沉,沒有需求可以不設(shè)置

? ? {

? ? ? "version": "1.0", //文檔版本號

? ? ? "revisionTime":"2020-12-31 10:30",//文檔修訂時間

? ? ? "status": "update", //變更操作狀態(tài),一般為:創(chuàng)建俯抖、更新等

? ? ? "author": "author", //文檔變更作者

? ? ? "remarks": "desc" //變更描述

? ? }

? ],

? "customResponseFields": [ //自定義添加字段和注釋输瓜,api-doc后期遇到同名字段則直接給相應(yīng)字段加注釋,非必須

? ? {

? ? ? "name": "code",//覆蓋響應(yīng)碼字段

? ? ? "desc": "響應(yīng)代碼",//覆蓋響應(yīng)碼的字段注釋

? ? ? "ownerClassName": "org.springframework.data.domain.Pageable", //指定你要添加注釋的類名

? ? ? "value": "00000"http://設(shè)置響應(yīng)碼的值

? ? }

? ],

? "requestHeaders": [ //設(shè)置請求頭芬萍,沒有需求可以不設(shè)置

? ? {

? ? ? "name": "token",

? ? ? "type": "string",

? ? ? "desc": "desc",

? ? ? "required": false,

? ? ? "value":"55",

? ? ? "since": "-"

? ? }

? ],

? "rpcApiDependencies":[{ // 項目開放的dubbo api接口模塊依賴尤揣,配置后輸出到文檔方便使用者集成

? ? ? "artifactId":"SpringBoot2-Dubbo-Api",

? ? ? "groupId":"com.demo",

? ? ? "version":"1.0.0"

? }],

? "rpcConsumerConfig":"src/main/resources/consumer-example.conf",//文檔中添加dubbo consumer集成配置,用于方便集成方可以快速集成

? "apiObjectReplacements": [{ // 自smart-doc 1.8.5開始你可以使用自定義類覆蓋其他類做文檔渲染柬祠,使用全類名

? ? ? "className": "org.springframework.data.domain.Pageable",

? ? ? "replacementClassName": "com.power.doc.model.PageRequestDto" //自定義的PageRequestDto替換Pageable做文檔渲染

? }],

? "apiConstants": [{//從1.8.9開始配置自己的常量類北戏,smart-doc在解析到常量時自動替換為具體的值,如:http://localhost:8080/testConstants/+ApiVersion.VERSION中的ApiVersion.VERSION會被替換

? ? ? "constantsClassName": "com.power.doc.constants.RequestParamConstant"

? }],

? "responseBodyAdvice":{ //自smart-doc 1.9.8起,ResponseBodyAdvice統(tǒng)一返回設(shè)置漫蛔,可用ignoreResponseBodyAdvice tag來忽略

? ? ? "className":"com.power.common.model.CommonResult" //通用響應(yīng)體

? },

? "sourceCodePaths": [ //設(shè)置代碼路徑嗜愈,smart-doc默認(rèn)會自動加載src/main/java, 沒有需求可以不設(shè)置 1.0.0以后版本此配置不再生效

? ? {

? ? ? "path": "src/main/java",

? ? ? "desc": "測試"

? ? }

? ]

}

3,通過上面兩個步驟完成了smart-doc文檔的配置莽龟,最后補上請求接口注釋和實體類注釋即可

接口文檔通過掃描注解@RequestMapping識別模塊,@PostMapping,@GetMapping識別接口蠕嫁,通過注釋來完成接口文檔的編寫。


4毯盈,最后通過maven命令完成文檔構(gòu)建剃毒,我這里通過idea自帶工具完成構(gòu)建


5,最后完成效果圖


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末搂赋,一起剝皮案震驚了整個濱河市赘阀,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌脑奠,老刑警劉巖基公,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異宋欺,居然都是意外死亡轰豆,警方通過查閱死者的電腦和手機胰伍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秒咨,“玉大人喇辽,你說我怎么就攤上這事∮晗” “怎么了菩咨?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長陡厘。 經(jīng)常有香客問我抽米,道長,這世上最難降的妖魔是什么糙置? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任云茸,我火速辦了婚禮,結(jié)果婚禮上谤饭,老公的妹妹穿的比我還像新娘标捺。我一直安慰自己,他們只是感情好揉抵,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布亡容。 她就那樣靜靜地躺著,像睡著了一般冤今。 火紅的嫁衣襯著肌膚如雪闺兢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天戏罢,我揣著相機與錄音屋谭,去河邊找鬼。 笑死龟糕,一個胖子當(dāng)著我的面吹牛桐磁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播讲岁,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼我擂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了催首?” 一聲冷哼從身側(cè)響起扶踊,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤泄鹏,失蹤者是張志新(化名)和其女友劉穎郎任,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體备籽,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡舶治,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年分井,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片霉猛。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡尺锚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惜浅,到底是詐尸還是另有隱情瘫辩,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布坛悉,位于F島的核電站伐厌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏裸影。R本人自食惡果不足惜挣轨,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望轩猩。 院中可真熱鬧卷扮,春花似錦、人聲如沸均践。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浊猾。三九已至抖甘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間葫慎,已是汗流浹背衔彻。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留偷办,地道東北人艰额。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子迷郑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容