Files
go-common/docs/README.md

2.3 KiB
Raw Permalink Blame History

GoCommon 工具类库文档

目录

快速开始

安装

go get git.toowon.com/jimmy/go-common

使用示例

数据库迁移

import "git.toowon.com/jimmy/go-common/migration"

migrator := migration.NewMigrator(db)
migrator.AddMigration(migration.Migration{
    Version: "20240101000001",
    Description: "create_users_table",
    Up: func(db *gorm.DB) error {
        return db.Exec("CREATE TABLE users ...").Error
    },
})
migrator.Up()

日期转换

import "git.toowon.com/jimmy/go-common/datetime"

datetime.SetDefaultTimeZone(datetime.AsiaShanghai)
now := datetime.Now()
str := datetime.FormatDateTime(now)

HTTP响应Handler黑盒模式

import (
    "net/http"
    commonhttp "git.toowon.com/jimmy/go-common/http"
)

func GetUser(h *commonhttp.Handler) {
    id := h.GetQueryInt64("id", 0)
    h.Success(data)
}

http.HandleFunc("/user", commonhttp.HandleFunc(GetUser))

中间件

import (
    "net/http"
    "git.toowon.com/jimmy/go-common/middleware"
    commonhttp "git.toowon.com/jimmy/go-common/http"
)

// CORS + 时区中间件
chain := middleware.NewChain(
    middleware.CORS(),
    middleware.Timezone,
)

handler := chain.ThenFunc(func(w http.ResponseWriter, r *http.Request) {
    h := commonhttp.NewHandler(w, r)
    // 在Handler中获取时区
    timezone := h.GetTimezone()
    h.Success(data)
})

配置管理

import "git.toowon.com/jimmy/go-common/config"

// 从文件加载配置
cfg, err := config.LoadFromFile("./config.json")

// 获取各种配置
dsn, _ := cfg.GetDatabaseDSN()
redisAddr := cfg.GetRedisAddr()
corsConfig := cfg.GetCORS()

版本

v1.0.0

许可证

MIT