摘要:前言說明是一個文檔生成工具可以根據(jù)代碼注釋生成文檔從注釋生成靜態(tài)網(wǎng)頁文檔,不僅支持項目版本號,還支持版本號安裝系統(tǒng)需要安裝略安裝有些系統(tǒng)需要權(quán)限來安裝執(zhí)行生成這個文檔的生成規(guī)則是對于項目中我們使用封裝了一個函數(shù)生成文檔注意分組名不
前言
說明
apidoc是一個API文檔生成工具, apidoc可以根據(jù)代碼注釋生成web api文檔, apidoc從注釋生成靜態(tài)html網(wǎng)頁文檔,不僅支持項目版本號,還支持api版本號
A). 系統(tǒng)需要安裝nodejs(略)
B). 安裝apidoc
# 有些系統(tǒng)需要sudo 權(quán)限來安裝 $ npm install apidoc -g
C). 執(zhí)行生成
# 這個文檔的生成規(guī)則是 # apidoc # -i code_dir # -o output_dir $ apidoc -i myapp/ -o apidoc/ # 對于項目中我們使用 laravel artisan 封裝了一個函數(shù) # 生成 api doc 文檔 $ php artisan lemon:doc apidoc
注意: 分組名不支持中文,可修改
使用A) 生成文檔
$ apidoc -i myapp/ -o doc/api [-c ./] -f ".*.js$"
-i 表示輸入,后面是文件夾路徑
-o 表示輸出,后面是文件夾路徑
默認(rèn)會帶上-c,在當(dāng)前路徑下尋找配置文件 apidoc.json,如果找不到則會在package.json中尋找 "apidoc": { }
-f 為文件過濾,后面是正則表達(dá)式,示例為只選著js文件
-e 的選項,表示要排除的文件/文件夾,也是使用正則表達(dá)式
B) 項目配置
{ "name" : "項目名", "version": "1.0.0", "title": "mysails-瀏覽器標(biāo)題", "description": "description" }
我們的配置存放在根目錄 package.json 文件中.
參數(shù)說明和示例apidoc 支持如下關(guān)鍵字:(下面 [ ] 中括號中表示是可選寫的內(nèi)容,使用時不用加 [ ] 中括號。)
@api {method} path [title] 只有使用@api標(biāo)注的注釋塊才會在解析之后生成文檔,title會被解析為導(dǎo)航菜單(@apiGroup)下的小菜單 method可以有空格,如{POST GET} @apiGroup name 分組名稱,被解析為導(dǎo)航欄菜單 @apiName name 接口名稱,在同一個@apiGroup下,名稱相同的@api通過@apiVersion區(qū)分,否者后面@api會覆蓋前面定義的@api @apiDescription text 接口描述,支持html語法 @apiParam [(group)] [{type}] [field=defaultValue] [description] 詳細(xì)介紹見: http://apidocjs.com/#param-api-param @apiVersion verison 接口版本,major.minor.patch的形式 @apiIgnore [hint] apidoc會忽略使用@apiIgnore標(biāo)注的接口,hint為描述 @apiSampleRequest url 接口測試地址以供測試,發(fā)送請求時,@api method必須為POST/GET等其中一種 @apiDefine name [title] [description] 定義一個注釋塊(不包含@api),配合@apiUse使用可以引入注釋塊 在@apiDefine內(nèi)部不可以使用@apiUse @apiUse name 引入一個@apiDefine的注釋塊 @apiHeader [(group)] [{type}] [field=defaultValue] [description] @apiError [(group)] [{type}] field [description] @apiSuccess [(group)] [{type}] field [description] 用法基本類似,分別描述請求參數(shù)、頭部,響應(yīng)錯誤和成功 group表示參數(shù)的分組,type表示類型(不能有空格),入?yún)⒖梢远x默認(rèn)值(不能有空格),field上使用[]中擴號表示該參數(shù)是可選參數(shù) @apiParamExample [{type}] [title] example @apiHeaderExample [{type}] [title] example @apiErrorExample [{type}] [title] example @apiSuccessExample [{type}] [title] example 用法完全一致,但是type表示的是example的語言類型 example書寫成什么樣就會解析成什么樣,所以最好是書寫的時候注意格式化,(許多編輯器都有列模式,可以使用列模式快速對代碼添加*號)寫法規(guī)范 參數(shù)對齊
/** * @api {get} /api_prefix/check_verification [O]驗證驗證碼 * @apiVersion 1.0.0 * @apiName HomeCheckVerification * @apiGroup Home * @apiParam {String} mobile 手機號 * @apiParam {String} captcha 驗證碼 */ public function checkVerification(){}apiName命名規(guī)范
apiName 的命名規(guī)范是 apiGroup + functionName;
apiName 的寫法規(guī)范是 首字母大寫的駝峰模式
例如上面的命名規(guī)范是
apiGroup : Home apiName : HomeCheckVerification返回值約定
數(shù)字類型, 需要轉(zhuǎn)換成int 類型(返回的json 串中不需要有引號包裹)
文字類型的, 需要轉(zhuǎn)換成 string 類型
返回值中不允許存在 null
返回值對齊返回的類型值, 參數(shù)值, 說明必須對齊
返回的參數(shù)值和真正返回的內(nèi)容值必須填寫完整
/** * @api {get} /api_prefix/version [O]檢測新版本(Android) * @apiVersion 1.0.0 * @apiName HomeVersion * @apiGroup Home * @apiParam {String} version 版本號 * @apiSuccess {String} download_url 下載地址 * @apiSuccess {String} description 描述 * @apiSuccess {String} version 版本 * @apiSuccessExample data: * { * "download_url": "http://domain.com/1.1.1.apk", * "description": "修改bug若干, 增加微信支付功能", * "version": "1.1.1" * } */ public function version()路由定義
api 路由文件存放在 app/Http/Routes/ 文件夾下
Routes/ api_dailian.php api_up.php ...使用的PHP組件
系統(tǒng)使用 dinggo 作為 api的封裝組件
dingo/api 中文文檔
其他說明A). 接口命名
lists => 列表 create => 創(chuàng)建 edit => 編輯 delete => 刪除
B). 參數(shù)命名
例如 A下的傳遞參數(shù), 我們應(yīng)當(dāng)使用 title 而不能使用
C). 路由命名
路由的名稱和坐在分組還有函數(shù)名進(jìn)行匹配, 使用蛇形寫法
/** * @api {get} /dailian/bank/lists [O][B]銀行賬戶列表 * @apiVersion 1.0.0 * @apiName UserBankList * @apiGroup User * @apiSuccess {String} id 賬號ID * @apiSuccess {String} bank_account 賬號信息 * @apiSuccess {String} bank_true_name 真實姓名 * @apiSuccess {String} bank_type 賬號類型 : 支付寶 * @apiSuccess {String} note 備注 * @apiSuccessExample 成功返回: * [ * { * "id": 2, * "bank_account": "123123123", * "bank_true_name": "二狗", * "bank_type": "支付寶", * "note": "" * } * ] */ public function lists()
這里的命名是 api_dailian.bank_lists
D). 自營的接口無特殊返回不需要填寫說明
E). 接口中只能返回有意義的數(shù)據(jù), 對app無用的數(shù)據(jù)不得返回
F). 列表為空也需要返回分頁
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/26129.html
摘要:來源于阿賢博客模塊化今天給大家寫一篇關(guān)于前端模塊化開發(fā)知識點。前端模塊化開發(fā)那點歷史模塊化是指在解決某個復(fù)雜混雜問題時,依照一種分類的思維把問題進(jìn)行系統(tǒng)性的分解以之處理。 來源于:阿賢博客 javascript模塊化 今天給大家寫一篇關(guān)于前端模塊化開發(fā)知識點。 前端模塊化開發(fā)那點歷史 模塊化: 是指在解決某個復(fù)雜、混雜問題時,依照一種分類的思維把問題進(jìn)行系統(tǒng)性的分解以之處理。模塊...
摘要:感謝大神的免費的計算機編程類中文書籍收錄并推薦地址,以后在倉庫里更新地址,聲音版全文狼叔如何正確的學(xué)習(xí)簡介現(xiàn)在,越來越多的科技公司和開發(fā)者開始使用開發(fā)各種應(yīng)用。 說明 2017-12-14 我發(fā)了一篇文章《沒用過Node.js,就別瞎逼逼》是因為有人在知乎上黑Node.js。那篇文章的反響還是相當(dāng)不錯的,甚至連著名的hax賀老都很認(rèn)同,下班時讀那篇文章,竟然坐車的還坐過站了。大家可以很...
摘要:感謝大神的免費的計算機編程類中文書籍收錄并推薦地址,以后在倉庫里更新地址,聲音版全文狼叔如何正確的學(xué)習(xí)簡介現(xiàn)在,越來越多的科技公司和開發(fā)者開始使用開發(fā)各種應(yīng)用。 說明 2017-12-14 我發(fā)了一篇文章《沒用過Node.js,就別瞎逼逼》是因為有人在知乎上黑Node.js。那篇文章的反響還是相當(dāng)不錯的,甚至連著名的hax賀老都很認(rèn)同,下班時讀那篇文章,竟然坐車的還坐過站了。大家可以很...
摘要:面向?qū)ο竺嫦驅(qū)ο蠡A(chǔ)面向?qū)ο笫裁词穷惥哂邢嗤瑢傩蕴卣骱头椒ㄐ袨榈囊幌盗袀€體的集合,類是一個抽象的概念。析構(gòu)函數(shù),當(dāng)一個對象被銷毀前,自動調(diào)用。作用是為新克隆的對象進(jìn)行初始化賦值對象序列化時,自動調(diào)用。使用抽象類的作用限制實例化。 面向?qū)ο?面向?qū)ο蠡A(chǔ) 面向?qū)ο?什么是類? 具有相同屬性(特征)和方法(行為)的一系列個體的集合,類是一個抽象的概念。 什么是對象? 從類中,拿到的具有具體...
閱讀 1366·2023-04-26 02:42
閱讀 1694·2021-11-12 10:36
閱讀 1903·2021-10-25 09:47
閱讀 1337·2021-08-18 10:22
閱讀 1867·2019-08-30 15:52
閱讀 1280·2019-08-30 10:54
閱讀 2696·2019-08-29 18:46
閱讀 3557·2019-08-26 18:27