34--go语言学习之swagger

  1. 下载依赖
    go get github.com/swaggo/swag/cmd/swag
    go get github.com/swaggo/gin-swagger
    go get github.com/swaggo/files
  2. 创建文件

     main.go注意

    package main
    
    import (
    	"fmt"
    	"net/http"
    
    	_ "go_work/gin/swagger/docs" // swag init 生成的docs
    
    	"github.com/gin-gonic/gin"
    	ginSwagger "github.com/swaggo/gin-swagger"
    	"github.com/swaggo/gin-swagger/swaggerFiles"
    )
    
    type UserDTO struct {
    	Id   string `json:"id"`
    	Name string `json:"name"`
    	Age  int    `json:"age"`
    }
    
    type WebVo struct {
    	Code int         `json:"code"`
    	Msg  string      `json:"msg"`
    	Data interface{} `json:"data"`
    }
    
    func main() {
    	engine := gin.Default()
    	// 使用swagger中间件
    	engine.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
    	engine.POST("addUser", addUserHandler)
    	engine.GET("getUser", getUserHandler)
    	engine.Run(":9009")
    }
    
    // @Tags 添加用户
    // @Summary 添加用户
    // @Description 添加用户
    // @Accept json
    // @Produce json
    // @Param id formData string true "用户id"
    // @Param name formData string true "用户名"
    // @Param age formData int false "年龄"
    // @Success 200 {string} json "{"code":200,"msg":"ok"}"
    // @Router /addUser [post]
    func addUserHandler(c *gin.Context) {
    	// 绑定参数
    	var dto UserDTO
    	err := c.BindQuery(&dto)
    	if err != nil {
    		c.JSON(http.StatusBadRequest, "绑定失败")
    		return
    	}
    	vo := WebVo{
    		Code: 0,
    		Msg:  "添加成功",
    		Data: nil,
    	}
    	c.JSON(http.StatusOK, vo)
    }
    
    // @Tags 查询用户
    // @Summary 查询用户
    // @Description 通过id查询用户
    // @Accept json
    // @Produce json
    // @Param id query string true "用户id"
    // @Success 200 {string} json "{"code":200,"msg":"ok","data":"{"id":""123456,"name":"admin","age":18}"}"
    // @Router /getUser [get]
    func getUserHandler(c *gin.Context) {
    	id := c.Query("id")
    	fmt.Println(id)
    	vo := WebVo{
    		Code: 0,
    		Msg:  "查询成功",
    		Data: UserDTO{Id: id, Name: "admin", Age: 18},
    	}
    	c.JSON(http.StatusOK, vo)
    }
  3. 初始化swagger
    // 如****/swagger/main.go, 则需要在****/swagger目录下执行
    swag init


     执行成功后,会在当前文件目录下生成docs文件

  4. 引入docs

     在main.go引入docs包

  5. 测试

     http://127.0.0.1:9009/swagger/index.html

  6. 完成 
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值