試試使用 eolinker 掃描 GitLab 代碼注釋自動生成 API 文檔?


前言:

一般寫完代碼之后,還要將各類參數注解寫入API文檔,方便后續進行對接和測試,這個過程通常都很麻煩,如果有工具可以讀取代碼注釋直接生成API文檔的話,那會十分方便。
此前一直都是在使用eolinker的,但自從去年他們家“注釋生成文檔”的功能下線后,我就一直活在水深火熱當中——真的不想寫文檔啊,真的好累啊。
然而這兩天上線后,突然發現這個功能重新上線了!必須給大家安利一波!
官網地址:https://www.eolinker.com
根據官方的解釋,這個功能簡單來說就是讀取 gitlab(以前應該還能讀本地代碼) 的 php 代碼(截至發文增加支持讀取java,更方便了)注釋生成 API 文檔。

下面是官方的操作介紹:

1.先在EOLINKER新建項目,隨后進入項目概況頁,可以在概況頁中找到“掃描代碼注解生成文檔”模塊。

圖1概況頁功能.png

2.在同步之前我們打開設置看下需要填寫什么信息。

圖2同步需要填寫的信息.png

總共是10個選項,我們來分別看下需要怎么填寫:

  • 1.代碼倉庫類型,現在默認只有gitlab,在官方群問了他們的PM,后面應該還會支持github。
  • 2.代碼倉庫地址,gitlab有線上版本和用戶自己搭建私有雲版本,線上版本可以填寫https://gitlab.com,如果是自己部署的gitlab寫域名或者IP端口。
  • 3.項目ID,gitlab中新建項目后會有一個project ID,填入即可。
  • 4.訪問私鑰,通過gitlab的Access Tokens功能可獲取,后面會詳細介紹如何獲取。
  • 5.需要掃描的分支,默認為master。我們也可以新建一個分支。
  • 6.需要掃描的API目錄路徑,建立一個目錄作為API目錄。
  • 7.需要掃描的數據結構目錄路徑,建立一個目錄作為數據結構目錄。
  • 8.目標語言,目前默認只有PHP,比較可惜只有一個語言,不過我跟他們客服聊天,說是后面更新的語言支持會增加java。
  • 9.注解格式,默認為Swagger 2.0,代碼注釋編寫的格式可以按照下面的形式來寫,或者參考官方文檔http://zircote.com/swagger-php/annotations.html

比如model的

代碼截圖.png

比如controller的

代碼截圖2.png

  • 10.數據同步方式,目前可選增量更新、全量更新、僅添加新的API三種形式。以上就是需要填寫的全部信息。要正確填寫這些信息,接下來我們就要轉到gitlab進行設置。

由於官方沒有介紹過Gitlab,那還是由我先介紹下比較合適:gitLab 是一個用於倉庫管理系統的開源項目,使用git作為代碼管理工具,並在此基礎上搭建起來的web服務。gitlab跟github有點類似,都是基於web的git倉庫,關於注冊gitlab新建賬號如何操作的部分我就不多說了,但如果你已經有github賬號的話,是可以用github賬號登錄gitLab的。

1.首先要新建項目,這里我新建了一個名為demo code的project。

圖3新建項目.png

圖4新建demo.png

2.新建后已經有一個master的分支,然后在分支下分別建立兩個新的目錄:我命名為controllers和models,一個作為API目錄路徑,一個作為數據結構目錄路徑。

圖5在master下建立目錄.png

3.將寫好的php代碼上傳至分別的目錄。可以直接用命令行或者直接將文件上傳。

圖6上傳php代碼.png

圖7三個php代碼.png

4.成功上傳代碼后,跟着就是獲取密鑰。在gitlab中,生成密鑰需要用到Access Tokens功能。先進入設置頁面,通過左邊菜單中的Access Tokens功能,填寫對應的項目名稱,再根據需要,勾選開放的權限,看不懂也可以按照我下面的截圖進行勾選,點擊綠框后就可以獲取個人的密鑰了。如下圖:

圖8獲取個人密鑰.png

圖9個人密鑰.png

5.進行到這一步,我們已經把所有的信息都拿到了,再回到EOLINKER將信息填入,請看下圖,注意數據同步方式我選擇的是增量更新。

圖10信息設置.png

那我為什么會選擇增量更新呢?而三種數據同步更新區別是什么呢?

  • 增量更新:判斷已有API的詳細信息,添加新的API信息。用注解的數據替換掉現有的數據。部分注解沒有的數據,比如mock、參數值可能性、詳細文檔等等,均會保留。
  • 全量更新:在添加新的API的基礎上,全量替換現有API內的信息,以注解的為准,不保留注解沒有的數據。
  • 僅添加新的API:判斷接口名稱是否已經存在,不存在則插入。

下面舉個例子介紹下三種數據同步更新的區別, GitLab中的接口只有參數,而導入 EOLINKER 后會有 mock、詳細文檔等數據。假如現在你的 GitLab 倉庫有 ABCD 四個接口,在 EOLINKER 有 A 一個接口。

  • 采用“增量更新”后,EOLINKER 上將新增 BCD 三個接口;如果倉庫A接口的數據有所更新,那么在保持原有本地A接口的 mock、詳細文檔數據的同時,本地亦將新增相應更新的數據;
  • 采用“全量更新”后,EOLINKER 上將有 ABCD 四個接口;此時本地A 接口所有數據都不保留,而會與倉庫中A接口的數據保持一致;
  • 采用“僅添加新的 API”后,EOLINKER將以接口名稱來判斷是否需要添加新的API,因此EOLINKER上將新增 BCD 三個接口;即便 GitLab 上的參數已經改變,但本地原有的A接口數據不變;

因此,無論是什么情況都推薦采用增量更新。不過即便你還是誤操作了,EOLINKER都會自動生成API歷史版本,方便我們回滾文檔,操作失誤也不怕了。

1.根據官方的說明,在設置完成點擊立即同步后,文檔即會開始進行同步,而同步生成文檔所需的時間,則根據代碼注釋的數據量來決定。

圖11點擊立即同步.png

2.API文檔和對應的分組都被自動生成了,如下圖。

圖12API文檔和分組被自動生成.png

3.那我們就可以直接編輯修改文檔了,實在是方便了很多。

圖13編輯文檔.png

補充一句:按照他們的更新速度,目前也已經支持讀取gitlab上java代碼了,操作步驟跟讀取php的步驟類似,這里就不展開說了,還不知道請回頭再看一遍文章hhh。

總結

如果可以通過掃描代碼注釋自動生成API文檔,寫完代碼注解后就不用再一條一條的寫接口文檔,現在又有一個理由可以不再使用swagger了。新增的這個功能可以減輕大部分不必要的工作量,雖然現在只能支持gitlab上的php代碼和java代碼,但后續肯定還會繼續支持更多的平台和編程語言代碼,持續使用起來將會更加方便和快捷,希望eolinker能夠給我們帶來更多的驚喜。官網地址:https://www.eolinker.com


免責聲明!

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



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