虽然有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") }