diff --git a/api/api.go b/api/api.go new file mode 100644 index 0000000..fac298b --- /dev/null +++ b/api/api.go @@ -0,0 +1,41 @@ +package api + +import ( + "dypid/internal/controller" + "embed" + "io/fs" + "net/http" + + "github.com/gin-gonic/gin" +) + +func RegRoutes(r *gin.Engine) { + g := r.Group("/api") //初始化路由组 /api/xxxx + { + g.GET("/token", controller.ListTokenHandler) //获取token列表 + g.POST("/token", controller.CreateTokenHandler) //创建token + g.PUT("/token", controller.UpdateTokenHandler) //更新token + g.DELETE("/token", controller.DeleteTokenHandler) //删除token + g.GET("/token/info", controller.GetTokenInfoHandler) //获取token信息 + g.DELETE("/token/info", controller.DeleteTokenInfoHandler) //删除token数据库 + } + { + g.GET("/data", controller.ReadDataHandler) //获取数据 + g.POST("/data", controller.WriteDataHandler) //写入数据 + } +} + +func RegWebService(r *gin.Engine, webDir embed.FS) { + assets, _ := fs.Sub(webDir, "web/dist/assets") + r.StaticFS("/assets", http.FS(assets)) + + icon, _ := fs.ReadFile(webDir, "web/dist/favicon.ico") + r.GET("/favicon.ico", func(c *gin.Context) { + c.Data(200, "image/x-icon", icon) + }) + + indexHtml, _ := fs.ReadFile(webDir, "web/dist/index.html") + r.NoRoute(func(c *gin.Context) { + c.Data(200, "text/html; charset=utf-8", indexHtml) + }) +} diff --git a/controller/dataController.go b/internal/controller/dataController.go similarity index 99% rename from controller/dataController.go rename to internal/controller/dataController.go index 1558f46..d2634e8 100644 --- a/controller/dataController.go +++ b/internal/controller/dataController.go @@ -1,8 +1,8 @@ package controller import ( - "dypid/db" "dypid/global" + "dypid/internal/db" "fmt" "net/http" "strings" diff --git a/controller/tokenController.go b/internal/controller/tokenController.go similarity index 99% rename from controller/tokenController.go rename to internal/controller/tokenController.go index e446d88..1c1d980 100644 --- a/controller/tokenController.go +++ b/internal/controller/tokenController.go @@ -1,8 +1,8 @@ package controller import ( - "dypid/db" "dypid/global" + "dypid/internal/db" "net/http" "strconv" diff --git a/db/local.go b/internal/db/local.go similarity index 100% rename from db/local.go rename to internal/db/local.go diff --git a/db/redis.go b/internal/db/redis.go similarity index 100% rename from db/redis.go rename to internal/db/redis.go diff --git a/model/data.go b/internal/model/data.go similarity index 100% rename from model/data.go rename to internal/model/data.go diff --git a/main.go b/main.go index ec2a46d..483f578 100644 --- a/main.go +++ b/main.go @@ -1,13 +1,11 @@ package main import ( + "dypid/api" "dypid/config" - "dypid/controller" - "dypid/db" + "dypid/internal/db" "embed" "fmt" - "io/fs" - "net/http" "github.com/gin-contrib/cors" "github.com/gin-gonic/gin" @@ -23,35 +21,13 @@ func main() { //初始化一个http服务对象 gin.SetMode(config.APPConfig.RunMode) r := gin.Default() + //跨域设置 r.Use(cors.Default()) - - //Vue网站服务 - assets, _ := fs.Sub(webDir, "web/dist/assets") - r.StaticFS("/assets", http.FS(assets)) - icon, _ := fs.ReadFile(webDir, "web/dist/favicon.ico") - r.GET("/favicon.ico", func(c *gin.Context) { - c.Data(200, "image/x-icon", icon) - }) - indexHtml, _ := fs.ReadFile(webDir, "web/dist/index.html") - r.NoRoute(func(c *gin.Context) { - c.Data(200, "text/html; charset=utf-8", indexHtml) - }) - - //API接口 - g := r.Group("/api") //初始化路由组 /api/xxxx - { - g.GET("/token", controller.ListTokenHandler) //获取token列表 - g.POST("/token", controller.CreateTokenHandler) //创建token - g.PUT("/token", controller.UpdateTokenHandler) //更新token - g.DELETE("/token", controller.DeleteTokenHandler) //删除token - g.GET("/token/info", controller.GetTokenInfoHandler) //获取token信息 - g.DELETE("/token/info", controller.DeleteTokenInfoHandler) //删除token数据库 - } - { - g.GET("/data", controller.ReadDataHandler) //获取数据 - g.POST("/data", controller.WriteDataHandler) //写入数据 - } + //注册网页服务(Vue) + api.RegWebService(r, webDir) + //注册API接口 + api.RegRoutes(r) // 监听并在 0.0.0.0:8080 上启动服务 fmt.Printf("服务器正在运行:http://%s\n", config.APPConfig.Host)