利用apidoc自動生成model文件

2021-09-11 14:23:35 字數 1979 閱讀 8765

公司在之前進行存管對接後,對內部架構進行了細分,業務邏輯也比之前複雜了不少,由此資料庫文件的必要性顯得十分重要;組長參照了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...