You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.0 KiB

  1. package cmd
  2. import (
  3. "context"
  4. "github.com/gogf/gf/v2/net/ghttp"
  5. "practice_Go/internal/controller/clubPage"
  6. "practice_Go/internal/controller/mainPage"
  7. "github.com/gogf/gf/v2/frame/g"
  8. "github.com/gogf/gf/v2/os/gcmd"
  9. )
  10. /*自定义的允许跨域请求中间件*/
  11. func MiddlewareCORS(r *ghttp.Request) {
  12. /* 没有起到应起到的作用,还是所有的都可以访问
  13. //自定义授权跨域的Origin
  14. corsOptions := r.Response.DefaultCORSOptions()
  15. corsOptions.AllowDomain = []string{"localhost"} //数组中的为允许访问的
  16. if !r.Response.CORSAllowedOrigin(corsOptions) {
  17. r.Response.WriteStatus(http.StatusForbidden)
  18. return
  19. }
  20. r.Response.CORS(corsOptions)
  21. r.Middleware.Next()*/
  22. //默认的跨域设置
  23. r.Response.CORSDefault()
  24. r.Middleware.Next()
  25. }
  26. var (
  27. Main = gcmd.Command{
  28. Name: "main",
  29. Usage: "main",
  30. Brief: "start http server",
  31. Func: func(ctx context.Context, parser *gcmd.Parser) (err error) {
  32. s := g.Server()
  33. s.BindHandler("/*any", func(r *ghttp.Request) {
  34. r.Response.CORSDefault()
  35. })
  36. // 定义一个路由组,路径为/mainpage
  37. s.Group("/mainpage", func(group *ghttp.RouterGroup) {
  38. // 添加中间件,用于处理响应
  39. //group.Middleware(ghttp.MiddlewareHandlerResponse)
  40. group.Middleware(MiddlewareCORS)
  41. // 绑定路由,将mainPage.NewMainPage()绑定到该路由组
  42. group.Bind(
  43. mainPage.NewMainPage(),
  44. )
  45. })
  46. // 定义一个路由组,路径为/clubpage
  47. s.Group("/clubpage", func(group *ghttp.RouterGroup) {
  48. // 添加中间件,用于处理响应
  49. //group.Middleware(ghttp.MiddlewareHandlerResponse)
  50. group.Middleware(MiddlewareCORS)
  51. // 绑定路由,将mainPage.NewMainPage()绑定到该路由组
  52. group.Bind(
  53. clubPage.NewClubPage(),
  54. )
  55. })
  56. s.Run()
  57. //开启静态资源
  58. s.SetServerRoot("resource/public")
  59. s.SetOpenApiPath("/api.json") //启用OpenAPIv3,并设置OpenAPI文档的路径
  60. s.SetSwaggerPath("/swagger") //启用内置的Swagger接口文档UI,并设置Swagger文档的路径
  61. s.Run()
  62. return nil
  63. },
  64. }
  65. )