別再用swagger了,給你推薦幾個文檔生成神器

2020-09-23 蘇三說技術

最近公司打算做一個openapi開放平臺,讓我找一款好用的在線文檔生成工具,具體要求如下:


1.必須是開源的

2.能夠實時生成在線文檔

3.支持全文搜索

4.支持在線調試功能

5.界面優美


說實話,這個需求看起來簡單,但是實際上一點的都不簡單。


我花了幾天時間到處百度,谷歌,技術博客 和 論壇查資料,先後調研了如下文檔生成工具:

一、Gitbook

github地址:https://github.com/GitbookIO/gitbook

開源協議:Apache-2.0 License

Star: 22.9k

開發語言:javascript

用戶:50萬+

示例地址:https://www.servicemesher.com/envoy/intro/arch_overview/dynamic_configuration.html



GitBook是一款文檔編輯工具。它的功能類似金山WPS中的Word或者微軟Office中的Word的文檔編輯工具。它可以用來寫文檔、建表格、插圖片、生成pdf。當然,以上的功能WPS、Office可能做得更好,但是,GitBook還有更最強大的功能:它可以用文檔建立一個網站,讓更多人了解你寫的書,另外,最最核心的是,他支持Git,也就意味著,它是一個分布式的文檔編輯工具。你可以隨時隨地來編寫你的文檔,也可以多人共同編寫文檔,哪怕多人編寫同一頁文檔,它也能記錄每個人的內容,然後告訴你他們之間的區別,也能記錄你的每一次改動,你可以查看每一次的書寫記錄和變化,哪怕你將文檔都刪除了,它也能找回來!這就是它繼承Git後的厲害之處!


優點:使用起來非常簡單,支持全文搜索,可以跟git完美集成,對代碼無任何嵌入性,支持markdown格式的文檔編寫。


缺點:需要單獨維護一個文檔項目,如果接口修改了,需要手動去修改這個文檔項目,不然可能會出現接口和文檔不一致的情況。並且,不支持在線調試功能。


個人建議:如果對外的接口比較少,或者編寫之後不會經常變動可以用這個。

二、smartdoc

gitee地址:https://gitee.com/smart-doc-team/smart-doc

開源協議:Apache-2.0 License

Star: 758

開發語言:html、javascript

用戶:小米、科大訊飛、1加

示例地址:https://gitee.com/smart-doc-team/smart-doc/wikis/文檔效果圖?sort_id=1652819



smart-doc是一個java restful api文檔生成工具,smart-doc顛覆了傳統類似swagger這種大量採用註解侵入來生成文檔的實現方法。smart-doc完全基於接口源碼分析來生成接口文檔,完全做到零註解侵入,只需要按照java標準注釋的寫就能得到一個標準的markdown接口文檔


優點:基於接口源碼分析生成接口文檔,零註解侵入,支持html、pdf、markdown格式的文件導出。


缺點:需要引入額外的jar包,不支持在線調試


個人建議:如果實時生成文檔,但是又不想打一些額外的註解,比如:使用swagger時需要打上@Api、@ApiModel等註解,就可以使用這個。

三、redoc

github地址:https://github.com/Redocly/redoc

開源協議:MIT License

Star: 10.7K

開發語言:typescript、javascript

用戶:docker、redocly

示例地址:https://docs.docker.com/engine/api/v1.40/



redoc自己號稱是一個最好的在線文檔工具。它支持swagger接口數據,提供了多種生成文檔的方式,非常容易部署。使用redoc-cli能夠將您的文檔捆綁到零依賴的 HTML文件中,響應式三面板設計,具有菜單/滾動同步。


優點:非常方便生成文檔,三面板設計


缺點:不支持中文搜索,分為:普通版本 和 付費版本,普通版本不支持在線調試。另外UI交互個人感覺不適合國內大多數程式設計師的操作習慣。


個人建議:如果想快速搭建一個基於swagger的文檔,並且不要求在線調試功能,可以使用這個。


四、knife4j

gitee地址:https://gitee.com/xiaoym/knife4j

開源協議:Apache-2.0 License

Star: 3k

開發語言:java、javascript

用戶:未知

示例地址:http://swagger-bootstrap-ui.xiaominfo.com/doc.html



knife4j是為Java MVC框架集成Swagger生成Api文檔的增強解決方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一樣小巧,輕量,並且功能強悍。


優點:基於swagger生成實時在線文檔,支持在線調試,全局參數、國際化、訪問權限控制等,功能非常強大。


缺點:界面有一點點醜,需要依賴額外的jar包


個人建議:如果公司對ui要求不太高,可以使用這個文檔生成工具,比較功能還是比較強大的。


五、yapi

github地址:https://github.com/YMFE/yapi

開源協議:Apache-2.0 License

Star: 17.8k

開發語言:javascript

用戶:騰訊、阿里、美團、百度、京東等大廠

示例地址:http://swagger-bootstrap-ui.xiaominfo.com/doc.html



yapi是去哪兒前端團隊自主研發並開源的,主要支持以下功能:

  • 可視化接口管理
  • 數據mock
  • 自動化接口測試
  • 數據導入(各種,包括swagger、har、postman、json、命令行)
  • 權限管理
  • 支持本地化部署
  • 支持插件
  • 支持二次開發

優點:功能非常強大,支持權限管理、在線調試、接口自動化測試、插件開發等,BAT等大廠等在使用,說明功能很好。

缺點:在線調試功能需要安裝插件,用戶體檢稍微有點不好,主要是為了解決跨域問題,可能有安全性問題。不過要解決這個問題,可以自己實現一個插件,應該不難。

個人建議:如果不考慮插件安全的安全性問題,這個在線文檔工具還是非常好用的,可以說是一個神器,筆者在這裡強烈推薦一下。


如果這篇文檔對您有所幫助的話,麻煩關注一下我的公眾帳號:蘇三說技術,或者幫忙點讚或轉發,堅持原創不易,您的支持是我堅持最大的動力。後面我會分享更多更實用的乾貨,謝謝大家的支持。

相關焦點

  • springboot +swagger-ui 自動生成API文檔
    什麼是SwaggerSwagger是一個Restful風格接口的文檔在線自動生成和測試的框架官網:廢話不多說,先看一下 swagger-ui 生成的api 的效果吧@ApiImplicitParams : 用在方法上包含一組參數說明。@ApiImplicitParam:用來註解來給方法入參增加說明。
  • 使用swagger自動生成靜態的接口文檔說明頁
    那麼有什麼方式可以在開發接口中用一定的規則生成接口在線文檔,直接提供給前端人員,都按照既定的規則開發完即可上線。那麼swagger可以幫我們減輕這種頭疼的事情了。>接下來創建swagger的配置類@Configuration@EnableSwagger2public class SwaggerConfig { /** * 通過createRestApi函數創建Docket的Bean之後, apiInfo()用來創建該Api的基本信息(這些基本信息會展現在文檔頁面中)
  • 中年大叔學編程-Gin-Swagger生成API接口文檔
    最近簡單的學習了一下Golang,並且用Gin開發了兩個小應用,一個短域名生成,一個微信小程序。感受到了Golang的代碼簡潔、部署簡單、內存佔用少、零停機平滑重啟等優勢。在開發小程序的時候,需要生成接口文檔,這裡需要用到Gin-Swagger了,所以簡單的就來整理一下。
  • 給你的Swagger文檔換套附魔皮膚吧
    但對我來說還是花費了一些時間去學習,但是這樣的方法只能適用於特定的請求頭,耦合度很高,如果需要別的參數,還要再修改代碼。是swagger的一個前端實現,使用簡單、解析速度快、走心的設計,支持多項目同時展示,多種文檔目錄的展示方案,多種自定義配置,滿足各種使用習慣。
  • Asp.Net Core WebApi使用Swagger生成Api說明文檔
    啟用中間件服務,主要生成JSON文檔和SwaggerUI. //啟用中間件服務生成Swagger作為JSON終結點 app.UseSwagger(); //啟用中間件服務對swagger-ui,指定Swagger JSON終結點 app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); });啟動項目
  • hyperf api接口自動驗證和swagger接口文檔生成組件
    hyperf-apihelperhyperf-apihelper [hyperf api and swagger helper], 它是一個Hyperf框架的 [api接口自動驗證和swagger接口文檔生成] 組件.
  • Api接口文檔生成工具:Swagger2
    尊敬的讀者,記得加關注、點讚喲,您的認可是我最大的動力,謝謝現如今,前後端分離已經逐漸成為網際網路項目一種標準的開發方式,前端與後端交給不同的人員開發,但是項目開發中的溝通成本也隨之升高,這部分溝通成本主要在於前端開發人員與後端開發人員對WebAPI接口的溝通,Swagger2 就可以很好地解決,它可以動態生成
  • NET Core 3.x使用Swagger生成在線接口文檔
    其實我是想等.NET 5 出來的時候再來學習。在.NET 5正式發布之前還是先對之前的東西複習一下,那麼就先從.NET Core 使用swagger生成接口文檔開始吧。,離線文檔固然好,但是更新不及時,所以我們需要一個能在線實時更新的的接口文檔,那麼Swagger備受眾多開發者的青睞,所以它成了我們的不二之選。
  • Springboot OpenAPI文檔生成器Swagger
    ,可以方便的用來生成OpenAPI規格的接口文檔,支持Go、Python、Haskell、Java等多種語言,同時支持在線調試接口。Swagger 工具集包含:• Swagger Editor – 在線編寫 OpenAPI 規範的編輯器• Swagger UI – 使用 OpenAPI 規範生成的交互式文檔• Swagger Codegen – 使用 OpenAPI 規範分別生成客戶端/伺服器代碼(Server-stub)的工具
  • Swagger2—API文檔框架(一)
    OpenAPI規範(OAS)為RESTful API定義了一個與語言無關的標準接口,允許人和計算機發現和理解服務的功能,而無需訪問原始碼,文檔或通過網絡流量檢查。正確定義後,消費者可以使用最少量的實現邏輯來理解遠程服務並與之交互。然後,文檔生成工具可以使用OpenAPI定義來顯示API,使用各種程式語言生成伺服器和客戶端的代碼生成工具,測試工具以及許多其他用例。
  • 如何使用Swagger2構建強大的API文檔(一)
    建議是如果項目啟動階段,就已經搭好了後臺框架,那可以直接編寫服務端被調用層的代碼(即controller及其入參出參對象),然後通過Springfox-swagger 生成swagger json描述文件。
  • swagger-editor編寫好api文檔在哪用?這個工具你也得了解
    寫在前面:眾所周知swagger-editor是用來編寫api文檔的,雖然在swagger-editor工具給出了實時預覽的功能,但也只能是開發者或者說是編寫者看到,如果交到團隊協作,就顯得有點力不從心了。
  • swagger-editor編寫好api文檔在哪用?這個工具你得了解
    寫在前面:眾所周知swagger-editor是用來編寫api文檔的,雖然在swagger-editor工具給出了實時預覽的功能,但也只能是開發者或者說是編寫者看到,如果交到團隊協作,就顯得有點力不從心了。
  • Swagger2—API文檔框架(二)
    方法設置哪個包中內容被掃描3、自定義註解設置不需要生成接口文檔的方法3.3 添加NotIncludeSwagger註解在不需要生成接口文檔的方法上面添加@NotIncludeSwagger註解後,該方法將不會被Swagger進行生成在接口文檔中。
  • SpringCloud網關聚合Swagger接口文檔實踐
    大多數情況下,開發人員可能會使用在線文檔工具或者離線文檔來描述接口的一些信息。離線文檔存在最大的缺點就是當接口發生變化後,需要對接口文檔進行更新,無形中增加了開發人員的工作量。如果接口文檔更新不及時,那麼在前後端對接的過程中將會產生誤差,這樣將會大大增加前後端對接的溝通成本。目前後端開發中應用到最多的可能是在線文檔生成工具,例如:swagger。
  • 開發好物推薦9之自動生成在線接口+文檔-Knife4j
    前言現在大多數項目是前後端分離的項目,交互靠接口文檔。然而這項繁瑣的工作要交給後端開發者來寫,本來後端工作就不少,這無疑增加了後端開發的工作量。幸好有swagger,但是我們知道swagger支持在線文檔很友好,但是離線文檔還需額外的引入Jar,對於追求簡單的程式設計師,有沒有一個集swagger功能與一身,並且支持生成各種格式:doc,HTML,PDF的工具?在這種強烈的發聲下,Knife4j應運而生。
  • smart-doc 1.9.4 發布,Java 零註解 API 文檔生成工具
    ,smart-doc顛覆了傳統類似swagger這種大量採用註解侵入來生成文檔的實現方法。smart-doc完全基於接口源碼分析來生成接口文檔,完全做到零註解侵入,你只需要按照java標準注釋編寫,smart-doc就能幫你生成一個簡易明了的markdown 或是一個像GitBook樣式的靜態html文檔。如果你已經厭倦了swagger等文檔工具的無數註解和強侵入汙染,那請擁抱smart-doc吧!
  • 手把手教你ASP.NET Core:文檔利器Swagger
    本質上就是使用 OpenAPI 3.0 規範寫一份文檔,該文檔描述了 API 的各種狀態,你可以拿著這份文檔部署在 Swagger-UI 上給對接的同事查看,也可以在 SoapUI 等工具中進行測試。需要先安裝「Swashbuckle.AspNetCore」包,將 Swagger 生成器添加到 Startup.ConfigureServices 方法中的服務集合中:services.AddSwaggerGen();在 Startup.Configure 方法中,啟用中間件為生成的
  • smart-doc 1.9.3 發布,Java 零註解 API 文檔生成工具
    smart-doc是一款同時支持java restful api和apache dubbo rpc接口文檔生成的工具,smart-doc顛覆了傳統類似swagger這種大量採用註解侵入來生成文檔的實現方法
  • smart-doc 1.9.6 發布,Java 零註解 API 文檔生成工具
    smart-doc是一款同時支持java restful api和apache dubbo rpc接口文檔生成的工具,smart-doc顛覆了傳統類似swagger這種大量採用註解侵入來生成文檔的實現方法