Files
asset_assistant/backend/src/main.go
2025-11-17 15:17:36 +08:00

79 lines
2.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package main
import (
"asset_assistant/db" // 数据库相关操作包
"asset_assistant/logger" // 日志工具包
"asset_assistant/logic" // 业务逻辑处理包
"time"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin" // Gin框架用于构建HTTP服务
_ "github.com/lib/pq" // PostgreSQL数据库驱动下划线表示仅初始化不直接使用
"go.uber.org/zap" // Zap日志库用于结构化日志输出
)
// main函数是程序的入口点
func main() {
// 初始化日志配置
logger.Init()
// 记录服务初始化日志
zap.L().Info("🚀 用户服务初始化")
// 记录数据库初始化开始日志
zap.L().Info("⌛️ 数据库初始化开始")
// 初始化数据库连接
db.Init()
// 程序退出时关闭数据库连接defer确保在函数退出前执行
defer db.DB.Close()
// 记录数据库初始化成功日志
zap.L().Info("✅ 数据库初始化成功")
// 设置Gin框架为发布模式关闭调试信息
gin.SetMode(gin.ReleaseMode)
// 创建Gin默认路由器
r := gin.Default()
// 配置跨域中间件
r.Use(cors.New(cors.Config{
// 允许所有来源(生产环境建议指定具体域名)
AllowOrigins: []string{"*"},
// 允许的请求方法
AllowMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"},
// 允许的请求头
AllowHeaders: []string{"Origin", "Content-Type", "Content-Length", "Accept-Encoding", "X-CSRF-Token", "Authorization", "X-LoginRequest-ID"},
// 允许前端读取的响应头
ExposeHeaders: []string{"Content-Length"},
// 是否允许携带cookie
AllowCredentials: true,
// 预检请求的缓存时间
MaxAge: 12 * time.Hour,
}))
zap.L().Info("✅ 配置跨域中间件完成")
// 注册品种接口
variety := r.Group("/user")
{
variety.POST("/create", logic4variety.CreateVarietyHandler)
}
zap.L().Info("✅ 用户接口注册完成")
// // 注册创建国家的接口POST请求由logic.CreateHandler处理
// r.POST("/asset_assistant/create", logic.CreateHandler)
// zap.L().Info("✅ 创建接口注册完成: POST /asset_assistant/create")
// // 注册读取国家的接口POST请求由logic.ReadHandler
// r.POST("/asset_assistant/read", logic.ReadHandler)
// zap.L().Info("✅ 读取接口注册完成: POST /asset_assistant/read")
// // 注册更新国家的接口POST请求由logic.UpdateHandler
// r.POST("/asset_assistant/update", logic.UpdateHandler)
// zap.L().Info("✅ 更新接口注册完成: POST /asset_assistant/update")
// // 注册删除国家的接口POST请求由logic.DeleteHandler处理
// r.POST("/asset_assistant/delete", logic.DeleteHandler)
// zap.L().Info("✅ 删除接口注册完成: POST /asset_assistant/delete")
// 记录服务启动日志监听80端口
zap.L().Info("✅ 服务启动在80端口")
r.Run(":80")
}