公司在之前進行存管對接後,對內部架構進行了細分,業務邏輯也比之前複雜了不少,由此資料庫文件的必要性顯得十分重要;組長參照了mysql在定義欄位時新增的comment欄位生成文件,在mongoose也使用了這一方式,然後通過讀取model.js生成符合apidoc的注釋,通過apidoc生成文件。
說來慚愧,這任務本來是落在我身上,當時我根據apidoc的樣式模擬寫出html,但是顯示效果不好,組長就想到利用apidoc來生成文件,但是我拖拉了兩個週末後組長自己寫了demo,而後我只是做了樣式優化的部分
// 這是之前我寫得第一版
const types = [string, date, boolean, number]
const field = user.schema.obj
// console.log(field.type.name, field.comment)
let tbody = ''
// 定義空格符
const space = ' '
function rendertbody(data, index)
if (_.includes(types, field[attr]))
$ $$`
} else
if (attr.comment)
$ $$`
} else
}}rendertbody(field)
const body = `
"table">
"width: 30%">field
"width: 10%">type
"width: 40%">description
$`let html = `$`
console.log('生成頁面...')
fs.writefilesync(path.resolve(__dirname, '../../assets/modeldoc/index.html'), html)
process.exit(0)複製**
以下是apidoc的版本
const fs = require('fs');
const path = require('path');
const models = fs.readdirsync(path.resolve(__dirname, './'));
let ret = {};
for (const model of models) `)
}module.exports = ret;複製**
function generatefielddoc (key, value) } $\n`
} if (_.isobject(value) && value.type)
// 只能規定的值
if (value.enum) `
} else
if (value.type === string)"`}}
// 是否有預設值
if (value.default) "` : `=$`
}// 是否必填
if (!value.required) `
enumstr = `$]`
} else ]`}}
return `$
$} $
$$\n`
} const type = _.isarray(value) ? 'array' : 'object'
let ret = `$ } $\n`
// 若是陣列,將遞迴執行generatefielddoc
for (let attr in value) .$`, value[attr])
} return ret
}複製**
總結
總得來說,借助apidoc生成model文件,是可以滿足檢視的需求,而且顯示上可以與介面文件存放在同一位置統一檢視,不過在顯示效果上可以缺失了索引等屬性。
如何利用apidoc自動生成文件
參考如下 1.2.3.4.5.6.7.簡單的配置如下 django 1.安裝apidoc,寫道 npm install apidoc g 2.按apidoc語法寫好文件,參考5是一篇very good的語法規範 3.生成apidoc文件,我這裡是放在專案根目錄下的static資料夾的apidoc目錄...
ApiDoc 自動生成API文件
1 確認已經安裝node.js 可以使用npm命令 否則要先安裝node 2 安裝apidoc 命令列執行 npminstall apidoc g 3 在專案的當前目錄下編寫乙個指令碼genapidoc.bat 內容為 apidoc o doc apidoc pause 將生成的api文件 o 輸出...
自動生成apidoc介面文件
開發過程中,個人認為編寫介面文件是個很煩人的事,沒有或者隨便寫,前端對接的時候不清楚就更煩人了。使用aoidoc可以簡化這個操作,可我有時候連apidoc的注釋都懶得寫 api management smhard insert 新增 apiname insert apigroup 智慧型裝置 api...