Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。http://swagger.io/
Beego+Swagger 实现API自动化文档
步骤:
第一步:下载Swagger资源包,下载地址 https://github.com/beego/swagger
,将下载好的资源包放入项目swagger目录下。
第二步:修改main.go文件
package main
import (
_ "user_center_go/routers"
"github.com/astaxie/beego"
)
func main() {
if beego.BConfig.RunMode == "dev" {
beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
}
beego.Run()
}
第三步:修改router.go文件的路由注册方式,采用命名空间方式,且只支持两级路由;文件头部添加Swagger文件注解,用于声明API的作用。
// @APIVersion 版本号
// @Title 标题
// @Description 描述
// @Contact 联系方式
// @TermsOfServiceUrl 团队服务地址
// @License 许可
// @LicenseUrl 许可网址
package routers
import (
"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 controllers
import (
"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