为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Goji (Golang) 中使用不同的中间件创建单独的路由组?

如何在 Goji (Golang) 中使用不同的中间件创建单独的路由组?

Go
吃鸡游戏 2021-08-10 15:12:26
我正在使用 Goji ( https://github.com/zenazn/goji ) 并想定义具有自己的中间件的路由组。例如,下面的所有路径/company都应该使用 LDAP 身份验证并定义一个中间件来执行此操作。下的所有路径都/external使用不同类型的身份验证,因此它们具有不同的中间件定义。但这是在同一端口上提供服务的单个应用程序,因此我不想完全创建单独的 Web 服务——只是路径(和某些特定路由)可能使用不同的中间件。我在 Goji 上看到的所有示例都对所有路由使用一组中间件,因此我不确定如何以干净的方式完成此操作。此外,如果我可以为路由组中的所有路由指定一个基本路径,就像我在其他一些路由框架中看到的那样,那就太好了。我是否在 Goji 库(或扩展名为 net/http)中缺少此功能,该功能允许我将路由组合在一起并让每个组使用自己的中间件堆栈?我想实现的是这样的(伪代码):// 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))
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 284 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信