Categorygithub.com/Jimi-Public/ops-common
repository
0.2.7
Repository: https://github.com/jimi-public/ops-common.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

工程说明

OPS运维平台公共包

  • jwt
    • 生成,解析jwt Token 方法
// 示例代码
// 可传入 Opthion 
// jwt.OptionWithExpireTime()
// jwt.OptionWithJwtSecret()
t := NewToken()
token,err := t.GenerateToken(userid)// 传入userid 返回token,err
claims,err := t.ParseToken(token) // 传入token解析  返回反序列化,及err

-------------------
// Gin 使用
r := g.New()
r.Use(jwt.JWTMiddleware()) // 注册中间件
r.Run()

  • Respoes
    • 返回统一结构体
// 示例
r := g.New()
r.GET("/ping", func(c *gin.Context) {
    response.Resp(c,response.SuccessCode,"",response.&Data{"Total":1,"Items":["1"]})
})

  • log
  • 日志统一输出
    • 输出路径统一为pwd/logs/
g := gin.New()
g.Use(log.TraceIDMiddleware()) // 注册中间件

g.GET("/ping", func(c *gin.Context) {
    c.String(200, "pong")
    log.DeaultLogs.Log.Info("aaa")
})
  • HTTP Client

| 调用第三方服务(除了自身以外), 集成log trace_id 跨服务调用串联

eg:

package main

import (
	`net/http`

	`github.com/gin-gonic/gin`

	`github.com/Jimi-Public/ops-common/client`
	`github.com/Jimi-Public/ops-common/log`
)

func main() {
	g := gin.New()
	g.Use(log.TraceIDMiddleware())

	g.GET("/ping", func(c *gin.Context) {
		c.String(200, "pong")
		log.DeaultLogs.Log.Info("aaa")
		client.DefaultRequestBuilder.
			SetMethod(http.MethodGet).
			SetUrl("http://127.0.0.1:8081/ping").
			SetContext(c).Build(c) // 调用其他服务(接口)
	})
	go gin2()
	g.Run()
}

func gin2() {
	g := gin.New()
	g.Use(log.TraceIDMiddleware())

	g.GET("/ping", func(c *gin.Context) {
		c.String(200, "pong gin2 ")
		log.DeaultLogs.Log.Info("aaa gin2")
	})

	g.Run(":8081")
}

/* 日志输出 trace_id 一致
{"func":"main.main.func1","level":"info","message":"aaa","trace_id":"64569c6a-6e2f-4f30-bd69-fde105b49c92"}

{"func":"main.gin2.func1","level":"info","message":"aaa gin2","trace_id":"64569c6a-6e2f-4f30-bd69-fde105b49c92"}


*/