Quellcode durchsuchen

初始化路由

runningwater vor 1 Jahr
Ursprung
Commit
3710092765
3 geänderte Dateien mit 77 neuen und 23 gelöschten Zeilen
  1. 45 0
      bootstrap/route.go
  2. 11 23
      main.go
  3. 21 0
      routes/api.go

+ 45 - 0
bootstrap/route.go

@@ -0,0 +1,45 @@
+// Package bootstrap 处理程序初始化逻辑
+package bootstrap
+
+import (
+	"net/http"
+	"strings"
+
+	"github.com/gin-gonic/gin"
+	"github.com/runningwater/gohub/routes"
+)
+
+// SetupRoute 路由初始化
+func SetupRoute(router *gin.Engine) {
+	// 注册全局中间件
+	registerGlobalMiddleWare(router)
+	// 注册 API 路由
+	routes.RegisterAPIRoutes(router)
+	// 配置 404 路由
+	setup404Handler(router)
+}
+
+func setup404Handler(router *gin.Engine) {
+	router.NoRoute(func(c *gin.Context) {
+		// 获取标头信息的 Accept 字段
+		acceptString := c.Request.Header.Get("Accept")
+		if strings.Contains(acceptString, "text/html") {
+			c.String(http.StatusNotFound, "页面返回 404, Not Found")
+		} else {
+			// 默认返回 JSON
+			c.JSON(http.StatusNotFound, gin.H{
+				"error_code": 404,
+				"error_message": "404 Not Found",
+			})
+		}
+	})
+}
+
+
+
+func registerGlobalMiddleWare(router *gin.Engine) {
+	router.Use(
+		gin.Logger(),
+		gin.Recovery(),
+	)
+}

+ 11 - 23
main.go

@@ -1,35 +1,23 @@
 package main
 
 import (
-	"net/http"
-	"strings"
+	"fmt"
 
 	"github.com/gin-gonic/gin"
+	"github.com/runningwater/gohub/bootstrap"
 )
 
 func main() {
+	// 设置 Gin 模式为开发模式
+	gin.SetMode(gin.DebugMode)
+	
 	r:= gin.New()
 
-	r.Use(gin.Logger(), gin.Recovery())
+	// 初始化路由绑定
+	bootstrap.SetupRoute(r)
 
-	r.GET("/", func(c *gin.Context) {
-		c.JSON(http.StatusOK, gin.H{
-			"message": "hell",
-		})
-	})
-
-	// 处理 404 请求
-	r.NoRoute(func(c *gin.Context) {
-		acceptString := c.Request.Header.Get("Accept")
-		if strings.Contains(acceptString, "text/html") {
-			c.String(http.StatusNotFound, "页面返回 404, Not Found")
-		}else {
-			c.JSON(http.StatusNotFound, gin.H{
-				"error_code": 404,
-				"error_message": "404 Not Found",
-			})
-		}
-	})
-
-	r.Run(":8080")
+	err := r.Run(":8080")
+	if err != nil {
+		fmt.Println("启动失败", err.Error())
+	}
 }

+ 21 - 0
routes/api.go

@@ -0,0 +1,21 @@
+// Path: routes 注册路由
+package routes
+
+import (
+	"net/http"
+
+	"github.com/gin-gonic/gin"
+)
+
+// RegisterAPIRoutes 注册路由
+func RegisterAPIRoutes(router *gin.Engine) {
+	// v1 路由组,所有 v1 版本的路由都放在这里
+	v1 := router.Group("/v1")
+	{
+		v1.GET("/", func(c *gin.Context) {
+			c.JSON(http.StatusOK, gin.H{
+				"Hello": "World",
+			})
+		})
+	}
+}