我在Goji上看到的所有示例都是针对所有路由使用一组中间件,所以我不确定如何以干净的方式完成此任务.另外,如果我可以为路由组中的所有路由指定基本路径,那将会很好,类似于我在其他路由框架中看到的路径.
我是否在Goji库(或扩展名为net / http)中缺少此功能,这允许我将路由组合在一起并让每个组使用自己的中间件堆栈?
我想要实现的是这样的(psedocode):
// Use an LDAP authenticator for:// GET /company/employees// and// POST /company/recordscompanyGroup = &RouteGroup{"basePath": "/company"}companyGroup.Use(LDAPAuthenticator)companyGroup.Add(goji.Get("/employees",Employees.ListAll))companyGroup.Add(goji.Post("/records",Records.Create))// Use a special external user authenticator for: GET /external/productsexternalGroup = &RouteGroup{"basePath": "/external"}externalGroup.Use(ExternalUserAuthenticator)externalGroup.Add(goji.Get("/products",Products.ListAll))解决方法 您应该可以使用以下内容解决问题:
// Use an LDAP authenticator companyGroup := web.New()companyGroup.Use(LDAPAuthenticator)companyGroup.Get("/company/employees",Employees.ListAll)companyGroup.Post("/company/records",Records.Create)goji.Handle("/company/*",companyGroup)// Use a special external user authenticator for: GET /external/productsexternalGroup := web.New()externalGroup.Use(ExternalUserAuthenticator)externalGroup.Get("/external/products",Products.ListAll)goji.Handle("/external/*",externalGroup)
您需要为每个组提供自己的Web.请记住,您需要指定组成员中的完整路径.
@H_403_33@ 总结以上是内存溢出为你收集整理的如何在Goji(Golang)中创建具有不同中间件的单独路由组?全部内容,希望文章能够帮你解决如何在Goji(Golang)中创建具有不同中间件的单独路由组?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)