swagger生成離線文檔記錄(支持中文)


本檔中的附件需要到有道雲筆記的分享中下載:
https://note.youdao.com/ynoteshare1/index.html?id=78031789325c5a5a9926818bbfe9a22e&type=note
 
一、IDE為idea,使用maven構建的spring-boot工程,swagger版本為2.7.0
 
二、拷貝docs目錄、fonts目錄與themes目錄到src目錄下,fonts與themes是解決中文字體丟失的關鍵
 
三、拷貝測試類到test目錄下,注意測試類的包路徑與項目啟動類的包路徑一致,否則需要手動指定
 
四、修改pom.xml,加入文檔需要的依賴與插件配置,以下為參考的pom:
 
五、運行mvn test
 
六、查看生成的文檔,如果想要word文檔,需要用轉換工具進行轉換
 
以下為文檔效果:
 
 
七、過程中遇到的問題:
 
1. 單元測試類與項目啟動類包路徑不一致,導致無法運行單元測試
2. 添加loback.xml后無法加載,改為logback-spring后可以,在參考的demo中無此問題
3. <skipTests>true</skipTests> 要改為false或者注釋掉
4. 其他各種小問題,這個文檔是測試成功后整理的,未全部記錄
5. 如果有做接口分組,需要指定組名稱

MvcResult mvcResult = this.mockMvc.perform(get("/v2/api-docs? group=open-api")
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andReturn();


 

 
八、生產環境使用建議:
 
1. 整理了個用於生產環境生成離線文檔的模板項目,比如本文檔中的附件
2. 復制一份用於生成文檔的工程
3. 參考本文檔,生成接口離線文檔(pdf/html),如果不需要生成所有接口的文檔,則在swagger的配置類中指定
4. 文檔生成后,確認正確即可刪除此次的使用的工程
 
 
附錄:
 
能正確運行的案例:
 
# swagger2pdf
 
使用springBoot + springFox + swagger2markup + asciidoctorj-pdf,生成HTML和PDF格式的接口文檔,也解決了PDF文檔中文顯示為空白的問題。
 
關於本項目的一些其他信息,可以看我的[這篇博客](https://blog.csdn.net/u013719669/article/details/80998225)。
 
# 實現原理:
 
1. 先利用`SpringFox`庫生成`RESTful API`
2. 再利用`Swagger2Markup` Maven插件生成`asciidoc`文檔
3. 最后利用`asciidoctor` Maven插件生成 html 或 pdf 文件
 
# 如何使用本項目
 
先下載本項目到本地,導入`eclipse`,等待`maven`下載完依賴的`jar包`,即可使用。運行時只需要在項目上右擊-->`Run As`-->`Maven clean`-->在項目上右擊-->`Run As`-->`Maven test`,只要控制台顯示成功,在當前項目的`target\asciidoc\html`和`target\asciidoc\pdf`分別存放着`HTML文檔`和`PDF文檔`。
 
> 注意:其他IDE工具沒有試過,如需使用,請自行研究。
 
# 其他說明
 
為了本項目使用方便,不建議將要生成文檔的項目源碼整合到本項目,這樣做比較麻煩,需要每個項目都加。
 
比較好的做法是:
 
- 首先你的項目要確保是`spring boot`的,並且集成了`swagger`,接口層和入參出參實體類加了`swagger`的相關注解,且能正確跑起來;
- 然后將本項目的`src/test/java`下`com.example.swagger2pdf`中的`Swagger2PdfTest`類中的注釋放開,將生成當前項目的`swagger.json`的代碼注釋掉,將`url`中的`ip`和`port`換成自己要生成文檔的項目的`ip`和`port`,這里要確保這個`url`直接訪問有數據返回,不然是無法生成文檔的;
- 最后按上面說的運行項目即可生成文檔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM