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.
|
|
package cmd
import ( "context" "practice_Go/internal/controller/channel" "practice_Go/internal/controller/live" "practice_Go/internal/controller/reservation" "practice_Go/internal/controller/subscription"
"github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" "practice_Go/internal/controller/clubPage" "practice_Go/internal/controller/mainPage"
"github.com/gogf/gf/v2/os/gcmd" )
/*自定义的允许跨域请求中间件*/ func MiddlewareCORS(r *ghttp.Request) { /* 没有起到应起到的作用,还是所有的都可以访问 //自定义授权跨域的Origin
corsOptions := r.Response.DefaultCORSOptions() corsOptions.AllowDomain = []string{"localhost"} //数组中的为允许访问的
if !r.Response.CORSAllowedOrigin(corsOptions) { r.Response.WriteStatus(http.StatusForbidden) return } r.Response.CORS(corsOptions) r.Middleware.Next()*/ //默认的跨域设置
r.Response.CORSDefault() r.Middleware.Next() }
var ( Main = gcmd.Command{ Name: "main", Usage: "main", Brief: "start http server", Func: func(ctx context.Context, parser *gcmd.Parser) (err error) { s := g.Server() s.Group("/", func(group *ghttp.RouterGroup) { group.Middleware(ghttp.MiddlewareHandlerResponse) group.Bind( channel.NewV1(), subscription.NewV1(), live.NewV1(), reservation.NewV1(), ) })
s.BindHandler("/*any", func(r *ghttp.Request) { r.Response.CORSDefault() })
// 定义一个路由组,路径为/mainpage
s.Group("/mainpage", func(group *ghttp.RouterGroup) { // 添加中间件,用于处理响应
//group.Middleware(ghttp.MiddlewareHandlerResponse)
group.Middleware(MiddlewareCORS) // 绑定路由,将mainPage.NewMainPage()绑定到该路由组
group.Bind( mainPage.NewMainPage(), ) })
// 定义一个路由组,路径为/clubpage
s.Group("/clubpage", func(group *ghttp.RouterGroup) { // 添加中间件,用于处理响应
//group.Middleware(ghttp.MiddlewareHandlerResponse)
group.Middleware(MiddlewareCORS) // 绑定路由,将mainPage.NewMainPage()绑定到该路由组
group.Bind( clubPage.NewClubPage(), ) })
//开启静态资源
s.SetServerRoot("resource/public") s.SetOpenApiPath("/api.json") //启用OpenAPIv3,并设置OpenAPI文档的路径
s.SetSwaggerPath("/swagger") //启用内置的Swagger接口文档UI,并设置Swagger文档的路径
s.Run() return nil }, } )
|