如何在Google App Engine中使用Gin-gonic中间件?

huangapple go评论72阅读模式
英文:

How to use Gin-gonic middleware with Google App Engine?

问题

我正在使用Gin-Gonic在Google App Engine平台上开发我的网站。
一切都运行正常,但我开始需要使用一些中间件。

当我尝试使用:

router.Use(MyMiddleware())

通过MyMiddleware()返回的中间件似乎没有运行。

所以我的问题是:

  • 在使用GAE时,是否可以使用gin-gonic中间件?
  • 如果可以,如何实现?

谢谢!

以下是我的源代码:

main.go:

func init() {
    router := routes.Router()

    // 将配置设置到上下文中
    router.Use(SetConfiguration())

    http.Handle("/", router)
}

func SetConfiguration() gin.HandlerFunc {
    configuration := config.GetConfiguration()

    return func(c *gin.Context) {
        c.Set("config", configuration)
        c.Next()
    }
}

PS:routes.Router()只是使用gin.New()设置一个路由器并添加一些路由。

英文:

I'm using Gin-Gonic on a Google App Engine platform for my website.
Everything works fine but I'm starting to need to use some middleware.

When I try to use :

router.Use(MyMiddleware())

The middleware returned by MyMiddleware() doesn't seem to be run.

So my questions are :

  • Is it possible to use gin-gonic middlewares when working with GAE ?
  • If so, how can I achieve it ?

Thank you !

Here are my sources :

main.go :

func init() {
	router := routes.Router()

	// Set the config to the context
	router.Use(SetConfiguration())

	http.Handle("/", router)
}

func SetConfiguration() gin.HandlerFunc {
	configuration := config.GetConfiguration()

	return func(c *gin.Context) {
		c.Set("config", configuration)
		c.Next()
	}
}

PS : routes.Router() simply set a router with gin.New() and add some routes.

答案1

得分: 1

中间件路由应该是在其他路由之前添加的。请查看我一个项目中的这个文件,我在其中使用了CORS中间件Auth中间件

https://github.com/wilsontamarozzi/panda-api/blob/master/routers/router.go

英文:

The middleware route should be the first to be added before the other routes. See this file from a project of mine where I use CORS Middleware and Auth Middleware

https://github.com/wilsontamarozzi/panda-api/blob/master/routers/router.go

huangapple
  • 本文由 发表于 2017年1月12日 23:28:15
  • 转载请务必保留本文链接:https://go.coder-hub.com/41616960.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定