route.go 1.1 KB

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