API文檔自動生成

本文主要講述自動化API文檔生成——apidoc。網上有幾個篇文章都只是介紹apidoc的,具體怎么在自己的項目中使用以及與其他配合使用都是沒介紹的。最近開始玩服務器,了解到了有Windows與Linux之間共享文件的方法,就是samba。然后具體和apidoc結合起來非常好用,所以本文就當做筆記來把它記錄下來了
_

apidoc簡介

  apidoc是node的一個插件,它的功能就是能讓把我們的代碼注釋生成api文檔。它支持php java javascript python等多中語言。因為寫接口的同學通常很煩寫完接口還得寫文檔,文檔更新又麻煩。apidoc不僅支持項目的版本,也支持api的版本。在我所接觸過的文檔生成工具里面,這個是我感覺比較好用的。
_

apidoc的安裝

  apidoc是node的一個插件,那么它的安裝就依賴node。node的具體安裝我這里就不詳細說了,去node官網下包,解壓,編譯然后安裝。直接執行:

npm install apidoc -g 

_

samba的安裝

  samba的安裝也很簡單,本人用的是CentOS,我直接執行

yum install samba

就安裝好了。
_

samba的配置

        [public]comment = Public Stuffpath = /share/doc  你需要共享文件夾的路徑browseable = yes  可瀏覽性 guest ok = yes  是否允許訪客public = yes  是否可上傳writable = yes  是否可寫

我自己裝的時候也都是這么配置的,注意,這個samba需要你關閉你的防火墻,還得把你共享的目錄賦予777的權限(貌似755就夠了,我直接給了777)。我這邊還遇到過一個很坑爹的問題,就是這樣配置了,用Windows訪問這個共享目錄的時候,要求我輸入用戶名和密碼。其實主要還得把上面的

security = user

改成

security = share

samba也是支持用戶管理的,就是可以分配賬號密碼的,具體的就不展開介紹了。
_

apidoc的使用

  例如我們在代碼里面下了這樣的一段注釋:

/*** @api {get post} /brand/:id/:name/:new 這里中括號里面填的的是請求方式(GET POST OPTION DELETE等),后面填的是路由* @apiGroup brandList API接口所在的組名稱* @apiName  brands  API接口名稱* @apiVersion 1.0.1 API接口版本* @apiDescription  API接口的描述** @apiParam (入參) {Number{1-9999}}()這個括號里面的天的參數的組,括號里面相同的會被放在同一個表格里面 id=0 請求參數 大括號里面填的是參數類型 里面的大括號表示值的范圍 后面就是參數的名稱和默認值* @apiParam (入參) {String="a","b","c"} name 品牌名稱,等于號表示允許值* @apiParam (入參) {Boolean} new * @apiParam (入參) {Number} [test] 如果參數套上[]這樣的中括號,表明這個值是個可選的值** @apiParamExample {json} 接口返回值* {*     "code" : 0,*     "message" : "success",*     "data" : {*         "result" : "ok"*     }* }* @apiSampleRequest  下面就是一個模擬請求器,可以幫我們調試接口*     http://www.work.dev**/

基本上用這些已經足夠了,其他的用法可以參考它的官網:http://apidocjs.com/
_

生成apidoc

  假如我在我的控制器里面寫了這樣一段注釋:

 /**
* @api {GET} /user_info 獲取用戶信息接口
* @apiGroup User
* @apiVersion 2.0.0
* @apiDescription 獲取用戶信息
*
* @apiParam (入參) {String} token 登錄成功后客戶端返回的token
*
* @apiSuccessExample Success-Response:
*  {
*      "code": 0,
*      "message": "ok"
*      "data": {
*           "name": "1",//狀態 0:啟用 1:停用
*           "role": "1",//1管理員,0是普通員工
*           "sex": "1",//1表示男性,2表示女性
*      }
*  }
*
* @apiSampleRequest
* http://api.test.com/user_info
*
*/

先cd到項目里面
然后執行這樣的語句:

apidoc -i app/Http/Controllers -o \\115.28.231.211\public\

因為我samba共享的是這樣一個文件夾,并且在這個里面放文檔。然后我們來看下生成的結果

這時候我們直接點擊index.html可以直接看到這樣的靜態頁面:

_

后話

  到這里,我們就已經很方便的能運用apidoc了,我們可以自己直接寫好接口的時候直接寫注釋,一句命令寫到開了samba的服務器上,然后直接訪問靜態頁面,如果不想這樣赤裸裸的訪問靜態頁面,可以用node或者nginx直接綁上去,這里就不繼續展開講了。
_

后續補充

  其實在使用中的時候會發現一些很坑爹的問題,就是GroupName沒法用中文,但是其他地方可以用中文。畢竟這個是國外大佬發明的,不是國人的產物,有存在這樣的問題也在所難免。我不斷的搜,發現github上有人給他提issure。也有給出了解決方案,apidoc的語法其實是支持引用的,所以我們可以這樣定義

/*** @apiDefine name 測試中文*/

然后我們怎么使用呢。可以直接@apiUse name 也可以直接在注釋里面寫name,這樣就可以使用中文了。

  <font color='red'>這個東西唯一讓我不爽的就是有可能一大段注釋只是為了生成接口文檔!!!其它真的很好用</font>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456877.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456877.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456877.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習筆記之SVM(SVR)算法

學過SVM后&#xff0c;看了那么多別人的文章&#xff0c;是時候自己總結一波了。權當寫的筆記供自己日后再回顧吧。 PS:結合自己在工作過程中&#xff08;我這里用SVR做股票預測&#xff09;用到的知識來寫的&#xff0c;不會很全面&#xff0c;若有些知識這里沒提及讀者可自行…

[轉]基于圖的機器學習技術:谷歌眾多產品和服務背后的智能

近來機器學習領域實現了很多重大的進展&#xff0c;這些進展讓計算機系統具備了解決復雜的真實世界問題的能力。其中&#xff0c;谷歌的機器學習又是怎樣的 &#xff1f; 近來機器學習領域實現了很多重大的進展&#xff0c;這些進展讓計算機系統具備了解決復雜的真實世界問題的…

安裝mysql后在安裝目錄下只有my-default.ini沒有my.ini文件 解決-The MySQL server is running with the --secure-file-priv

WIN10 系統環境 安裝mysql后在安裝目錄下只有my-default.ini沒有my.ini文件 。 mysql報錯 ---------- The MySQL server is running with the --secure-file-priv option so it cannot execute this statement -------- 但是更改或想要查找配置文件就需要如下操作 在 安裝…

loewe測試軟件,實測Loewe三角包 最輕的小包最貼心的設計

原標題&#xff1a;實測Loewe三角包 最輕的小包最貼心的設計導語&#xff1a;每周一期的“包治百病”又跟大家見面來啦&#xff01;“包治百病”全方位評測包包的容量、重量、背法、在不同身高妹子身上的效果、各種驚人的小細節以及可能存在的問題&#xff0c;為有意購買這些包…

hadoop集群的搭建(分布式安裝)

集群 計算機集群是一種計算機系統&#xff0c;他通過一組松散集成的計算機軟件和硬件連接起來高度緊密地協同完成計算工作。集群系統中的單個計算機通常稱為節點&#xff0c;通常通過局域網連接。集群技術的特點&#xff1a;1、通過多臺計算機完成同一個工作。達到更高的效率 2…

解決:Error establishing a database connection阿里云修改數據庫密碼

今天閑來無事想把所有的二級密碼改成一致的&#xff0c;所以就把阿里云的mysql數據庫的密碼改了&#xff0c;結果&#xff0c;打開頁面報錯了&#xff0c;下邊的截圖是我問題解決后&#xff0c;重新復現的。如果修復這個問題后wordpress登錄頁面白板&#xff0c;此時不要著急&a…

機器學習各算法思想(極簡版)

讀到的一篇不錯的文章&#xff0c;拿來和大家分享一下。 轉自–頭條公眾號–極數蝸牛 &#xff08;1&#xff09;線性回歸 回歸最早是由高爾頓研究子女身高與父母身高遺傳關系提出的&#xff0c;發現子女平均身高總是向中心回歸而得名。其實“一分辛苦一分才”中就蘊含了線性…

PAT A 1118. Birds in Forest (25)【并查集】

并查集合并 #include<iostream> using namespace std; const int MAX 10010; int father[MAX],root[MAX]; int findfather(int x){if(xfather[x]) return x;else{int Ffindfather(father[x]);father[x]F;return F;} } void Union(int a , int b){int faAfindfather(a);i…

斯坦福計算機錄取難嗎,申請斯坦福究竟有多難? 什么樣條件的人才能被斯坦福錄取?斯坦福大學直播!...

原標題&#xff1a;申請斯坦福究竟有多難&#xff1f; 什么樣條件的人才能被斯坦福錄取&#xff1f;斯坦福大學直播&#xff01;申請斯坦福究竟有多難&#xff1f; 什么樣條件的人才能被斯坦福錄取&#xff1f;斯坦福大學直播&#xff01;西海岸小哈佛之稱的斯坦福大學&#xf…

解決:building 'twisted.test.raiser' extension安裝scrapy報錯

解決&#xff1a;building twisted.test.raiser extension error: Microsoft Visual C 14.0 is required. Get it with "Microsoft Visual C Build Tools": https://visualstudio.microsoft.com/downloads/ 安裝scrapy報錯&#xff0c;在Twisted安裝部分 解決方案…

Linux配置網絡出現Eroor adding default gateway的解決方案

最近在學習有關大數據方面的東西&#xff0c;剛開始要搭建模擬的虛擬機集群。用的是Minimal CentOS6.7版本Linux下的系統。因為我要為各個虛擬機設置靜態IP&#xff0c;所以就參考網上博客說的進行如下操作: 一、安裝完系統后先配置網絡&#xff1a; cd /etc/sysconfig/netwo…

揭秘8大自媒體平臺注冊方法,通過率百分之九十

寫在前面&#xff1a;準備材料&#xff1a;手機號&#xff0c;郵箱&#xff0c;手持照&#xff0c;輔助材料(非必選項)&#xff0c;邀請碼(非必選項)。輔助材料萬能公式&#xff1a;方法①新浪博客16級博客發8篇相關的文章&#xff0c;昵稱、描述、頭像都與所注冊自媒體號對應&…

AC日記——簡單密碼 openjudge 1.7 10

10:簡單密碼 總時間限制: 1000ms內存限制: 65536kB描述Julius Caesar曾經使用過一種很簡單的密碼。對于明文中的每個字符&#xff0c;將它用它字母表中后5位對應的字符來代替&#xff0c;這樣就得到了密文。比如字符A用F來代替。如下是密文和明文中字符的對應關系。密文A B C D…

計算機表格怎么求面積,在wps表格中怎么把數據生成面積圖?

面積圖強調數量隨時間而變化的程度&#xff0c;適用于顯示有限數量的若干組數據。可以利用面積圖來分析銷售的數據。在這里我用3種品牌的手提電腦在 2010年四個季度的銷售量作為數據源&#xff0c;使用“堆積面積圖”來顯示各種手提電腦銷售量所占大小并隨時間變化的趨勢。那么…

機器學習如何解決問題

原文 http://tech.meituan.com/mt-mlinaction-how-to-ml.html 前言 前言 隨著大數據時代的到來&#xff0c;機器學習成為解決問題的一種重要且關鍵的工具。不管是工業界還是學術界&#xff0c;機器學習都是一個炙手可熱的方向&#xff0c;但是學術界和工業界對機器學習的研究…

Linux中python2和python3的pip設置 及清華安裝源

啟動python2&#xff0c;我們可以直接在命令行輸入&#xff1a;python2 啟動python3&#xff0c;我們可以在命令行輸入&#xff1a;python或者python3. 但是pip沒有設置的話&#xff0c;在命令行輸入 pip --version 或者 pip2 --version&#xff0c;指向的都是python2. 現在…

java 循環 基本類型

1.基本if選擇結構 格式&#xff1a;if&#xff08;布爾表達式&#xff09;{ 表達式結果為true&#xff0c;則執行此代碼塊 } 例&#xff1a;if(week <5 ){ System.out.println(“上班”) } 2.if else結構 格式&#xff1a;if(布爾表達式){ 表達式結果為true&#xff0c;則執…

CodePlex關閉,建議遷移至GitHub

Microsoft決定停止提供CodePlex開源項目免費托管服務。他們建議開發人員可以遷移到GitHub或任何其他托管服務提供商。\\盡管有些人希望CodePlex關閉的消息僅僅是4月1日愚人節玩笑&#xff0c;但是Microsoft副總裁Brian Harry已經證明這并不是一個玩笑。在提供服務11年之后&…

計算機最佳參數,對使用者來說,學會計算機性能參數提取,給出性能評價很重要...

對計算機進行系統信息提取&#xff0c;并且給出性能評價&#xff0c;可以這樣做先看思維導圖&#xff1a;對計算機進行系統信息提取&#xff0c;并且給出性能評價&#xff0c;可以通過軟件測試實現&#xff01;一、 關于硬件健康的問題&#xff0c;避免買到二手配件。硬盤的使用…