雖然有go語言的swagger,但是go版本的swagger對代碼的侵入比較大,因此抽空實現了基於GO語言生成markdown文檔的工具
開源鏈接地址:
https://github.com/w3liu/gendoc
gendoc
文檔生成工具
MarkDown生成說明
示例
// doc是字段說明 // 如果是必填項,doc里填寫 required 即可,注意required前面需要加空格 type ReqCreateOrder struct { Pass string `json:"pass" doc:"交易密碼不能為空,請用BASE64 進行轉碼 required"` Amount float32 `json:"amount" doc:"支付金額,不能小於或等於0"` RandomNum string `json:"randomNum" doc:"隨機字符串不能為空,最大長度為30"` TranBody string `json:"tranBody" doc:"交易描述不能為空,最大長度為30;"` OutTradeNo string `json:"outTradeNo" doc:"三方交易唯一訂單號,最大長度60"` CreateIp string `json:"createIp" doc:"IP地址"` StartTime int64 `json:"startTime" doc:"交易開始時間搓,格式為yyyyMMddHHmmss"` } type RespCreateOrder struct { Code int32 `json:"code" doc:"錯誤碼"` Msg string `json:"msg" doc:"錯誤信息"` Data interface{} `json:"data" doc:"業務數據"` } func TestGenMarkDown(t *testing.T) { // 實例化文檔 doc := &gendoc.Document{ Title: "接口文檔", Version: "v1.0.0", BaseUrl: "http://127.0.0.1:8080", } // 添加接口 doc.AddItem("創建訂單接口", "/v1/order/create", gendoc.POST, gendoc.Tomas, &ReqCreateOrder{}, &RespCreateOrder{Data: &ReqCreateOrder{}}) // 生成字段 doc.GenerateFields() // 實例化文檔生成器 md := New(doc) // 生成文檔 md.Generate("./doc.md") }