因为beego的更新,一些使用自动化文档的方法也有了更新,请参考:http://www.jianshu.com/p/0dc261bc5cea
beego是什么?
beegogo 语言beegoRESTFultornadosinatraflaskinterfacestructbeegoswagger
Swagger是什么?
Swagger生成描述调用可视化Swagger方法,参数和模型允许APISwagger
自动文档的好处?
1. 不用手动写文档了,通过注解就可以自动化文档
2. 文档和代码同步更新,代码更新之后不需要再更新文档
3. 浏览器友好
4. 使用Swagger框架可以调试API,在浏览器端可以看到更多的`request`和`response`信息
使用指南
intelliJAtom
go get
go get github.com/astaxie/beego
安装bee工具:
go get github.com/beego/bee
$GOPATH/bin$PATH
export PATH=$PATH:$GOPATH/bin
创建一个beego项目
beebeego
bee api beeapi
$GOPATH/srcSwagger
beego.StaticDir["/swagger"] = "swagger"
SwaggerSwagger
根目录swagger
路由解析
NewNamespacenamespace+Include
ns := beego.NewNamespace("/v1",
beego.NSNamespace("/object",
beego.NSInclude(
&controllers.ObjectController{},
),
),
beego.NSNamespace("/user",
beego.NSInclude(
&controllers.UserController{},
),
),
)
beego.AddNamespace(ns)
生成文档
conf/app.conf
EnableDocs = true
docs
bee generate docs
docsinit函数docsinit函数
_ "beeapi/docs"
运行程序:
bee run watchall true
bee runfsnotify
打开http://127.0.0.1:8080/swagger/就可以看到自动化文档的界面
也可以运行下面命令改变docs的端口号:
bee run docs -docport=8888
注解
beego全局注释router.go
@APIVersion
@Title
@Description
@Contact
@TermsOfServiceUrl
@License
@LicenseUrl
应用注释,需要放在对应方法的上面,包括:
@title
@Description
@Param
@Success
@Failure
@router