go语言生成markdown文档工具

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


原文地址:https://www.cnblogs.com/w3liu/p/12380786.html