项目笔记(3)——swagger的初步使用 | 青训营笔记

81 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天

swagger的作用是充当一个api的调用文档,方便前端人员进行查询。将项目中所有的接口展现在页面上,这样后端程序员就不需要专门为前端使用者编写专门的接口文档;

一.整合swagger

1.下载所需要的包

go get -u github.com/swaggo/swag/cmd/swag

2.swag init查看项目是否多一个docs目录
3.再拉取

go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/files

4.改造router包中的app.go

package router

import (
	"gochat/docs"
	"gochat/service"

	"github.com/gin-gonic/gin"
	swaggerfiles "github.com/swaggo/files"
	ginSwagger "github.com/swaggo/gin-swagger"
)

func Router() *gin.Engine {
	r := gin.Default()
	docs.SwaggerInfo.BasePath = ""
	r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
	r.GET("/index", service.GetIndex)
	r.GET("/user/getUserList", service.GetUserList)
	return r
}

5.测试index页面 http://localhost:8081/swagger/index.html
6.到service中index.go和userservice.go中加上相对应的代码

// GetIndex
// @Tags 首页
// @Success 200 {string} json{"code","welcome"}
// @Router /index [get]
func GetIndex(c *gin.Context) {
	c.JSON(200,gin.H{
		"message":"welcome !!",
	})
}

// GetUserList
// @Tags 首页
// @Success 200 {string} json{"code","message"}
// @Router /user/getUserList [get]
func GetUserList(c *gin.Context) {
	data := make([]*models.UserBasic, 10)
	data = models.GetUserList()
	c.JSON(200, gin.H{
		"message": data,
	})
}

7.swag init,然后就能看到前端页面中所对应的方法(注意:每次进行一个新用户的)

image.png

二.日志查询

在数据库初始化的时候加入自己的logger(注意此处的固定写法,config所展现的配置可以进行增删。)

func InitMySQL() {
	// 自定义日志模板,打印语句
	newLogger := logger.New(
		log.New(os.Stdout, "\r\n", log.LstdFlags),
		logger.Config{
			SlowThreshold: time.Second, //慢sql阈值
			LogLevel:      logger.Info, //级别
			Colorful:      true,        //彩色
		},
	)
	DB, _ = gorm.Open(mysql.Open(viper.GetString("mysql.dns")), &gorm.Config{Logger: newLogger}) // 连接数据库
	fmt.Println("MySQL Inited....")
}

注意:logger.New的使用需要有两步:一步是需要log.New,另一步是需要logger.Config,然后注意在下方连接数据库中的gorm.Config{Logger:newLogger},此处是用于打印数据库中的各条数据。