Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。http://swagger.io/
Beego+Swagger 实现API自动化文档
步骤:
第一步:下载Swagger资源包,下载地址 https://github.com/beego/swagger ,将下载好的资源包放入项目swagger目录下。
第二步:修改main.go文件
package mainimport (_ "user_center_go/routers""github.com/astaxie/beego")func main() {if beego.BConfig.RunMode == "dev" {beego.BConfig.WebConfig.DirectoryIndex = truebeego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"}beego.Run()}
第三步:修改router.go文件的路由注册方式,采用命名空间方式,且只支持两级路由;文件头部添加Swagger文件注解,用于声明API的作用。
// @APIVersion 版本号// @Title 标题// @Description 描述// @Contact 联系方式// @TermsOfServiceUrl 团队服务地址// @License 许可// @LicenseUrl 许可网址package routersimport ("user_center_go/controllers""github.com/astaxie/beego")func init() {ns := beego.NewNamespace("/user-center",beego.NSNamespace("/token",beego.NSInclude(&controllers.TokenController{},),),beego.NSNamespace("/user",beego.NSInclude(&controllers.UserController{},),),)beego.AddNamespace(ns)}
第四步:给API Controller 添加注解
package controllersimport ("encoding/json""user_center_go/models""github.com/astaxie/beego")// 用户信息type UserController struct {beego.Controller}// @Title 获取用户基本信息// @Description 获取用户基本信息// @Param Authorization header string true "令牌,包含在请求头信息中"// @Success 200 {object} models.ApiResult "ok"// @Failure 400 {object} models.ApiResult "paras missing"// @Failure 500 {object} models.ApiResult "do not have this job"// @router /baseInfo [get]func (c *UserController) BaseInfo() {// 取出用户编号userId := c.Ctx.Input.GetData("userId")baseInfo := models.GetUserBaseInfo(userId.(string))c.Data["json"] = models.ApiResult{Code: SUCCESS, Message: "查询成功", Data: baseInfo}c.ServeJSON()}
第五步:启动
bee run -gendoc=true -downdoc=true
