Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。http://swagger.io/
    Beego+Swagger 实现API自动化文档
    步骤:
    第一步:下载Swagger资源包,下载地址 https://github.com/beego/swagger ,将下载好的资源包放入项目swagger目录下。
    第二步:修改main.go文件

    1. package main
    2. import (
    3. _ "user_center_go/routers"
    4. "github.com/astaxie/beego"
    5. )
    6. func main() {
    7. if beego.BConfig.RunMode == "dev" {
    8. beego.BConfig.WebConfig.DirectoryIndex = true
    9. beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
    10. }
    11. beego.Run()
    12. }

    第三步:修改router.go文件的路由注册方式,采用命名空间方式,且只支持两级路由;文件头部添加Swagger文件注解,用于声明API的作用。

    1. // @APIVersion 版本号
    2. // @Title 标题
    3. // @Description 描述
    4. // @Contact 联系方式
    5. // @TermsOfServiceUrl 团队服务地址
    6. // @License 许可
    7. // @LicenseUrl 许可网址
    8. package routers
    9. import (
    10. "user_center_go/controllers"
    11. "github.com/astaxie/beego"
    12. )
    13. func init() {
    14. ns := beego.NewNamespace("/user-center",
    15. beego.NSNamespace("/token",
    16. beego.NSInclude(
    17. &controllers.TokenController{},
    18. ),
    19. ),
    20. beego.NSNamespace("/user",
    21. beego.NSInclude(
    22. &controllers.UserController{},
    23. ),
    24. ),
    25. )
    26. beego.AddNamespace(ns)
    27. }

    第四步:给API Controller 添加注解

    1. package controllers
    2. import (
    3. "encoding/json"
    4. "user_center_go/models"
    5. "github.com/astaxie/beego"
    6. )
    7. // 用户信息
    8. type UserController struct {
    9. beego.Controller
    10. }
    11. // @Title 获取用户基本信息
    12. // @Description 获取用户基本信息
    13. // @Param Authorization header string true "令牌,包含在请求头信息中"
    14. // @Success 200 {object} models.ApiResult "ok"
    15. // @Failure 400 {object} models.ApiResult "paras missing"
    16. // @Failure 500 {object} models.ApiResult "do not have this job"
    17. // @router /baseInfo [get]
    18. func (c *UserController) BaseInfo() {
    19. // 取出用户编号
    20. userId := c.Ctx.Input.GetData("userId")
    21. baseInfo := models.GetUserBaseInfo(userId.(string))
    22. c.Data["json"] = models.ApiResult{Code: SUCCESS, Message: "查询成功", Data: baseInfo}
    23. c.ServeJSON()
    24. }

    第五步:启动

    1. bee run -gendoc=true -downdoc=true

    第六步:访问
    http://localhost:8080/swagger