route.go 949 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Package bootstrap 处理程序初始化逻辑
  2. package bootstrap
  3. import (
  4. "net/http"
  5. "strings"
  6. "github.com/gin-gonic/gin"
  7. "github.com/runningwater/gohub/routes"
  8. )
  9. // SetupRoute 路由初始化
  10. func SetupRoute(router *gin.Engine) {
  11. // 注册全局中间件
  12. registerGlobalMiddleWare(router)
  13. // 注册 API 路由
  14. routes.RegisterAPIRoutes(router)
  15. // 配置 404 路由
  16. setup404Handler(router)
  17. }
  18. func setup404Handler(router *gin.Engine) {
  19. router.NoRoute(func(c *gin.Context) {
  20. // 获取标头信息的 Accept 字段
  21. acceptString := c.Request.Header.Get("Accept")
  22. if strings.Contains(acceptString, "text/html") {
  23. c.String(http.StatusNotFound, "页面返回 404, Not Found")
  24. } else {
  25. // 默认返回 JSON
  26. c.JSON(http.StatusNotFound, gin.H{
  27. "error_code": 404,
  28. "error_message": "404 Not Found",
  29. })
  30. }
  31. })
  32. }
  33. func registerGlobalMiddleWare(router *gin.Engine) {
  34. router.Use(
  35. gin.Logger(),
  36. gin.Recovery(),
  37. )
  38. }