登录
首页 >  Golang >  Go问答

Go 语言中如何获取指定请求的数据?

来源:stackoverflow

时间:2024-03-13 11:18:26 284浏览 收藏

欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《Go 语言中如何获取指定请求的数据?》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!

问题内容

我有一个用 go 编写的 API,我正在使用 gin-gonic 框架来实现我的端点。我的项目遵循干净的架构,这意味着我的整个应用程序分为多个层,即控制器、服务、存储库和会话。端点由 auth0 保护,验证在 gin 中间件中进行。在中间件中,我可以从 JWT 中提取主题(在标头中设置)

现在,这是我的问题。我想在我的查询中使用这个主题值。我想知道是否可以将主题(子)存储在上下文中并在代码的其他部分中使用它而不传递上下文。这可能吗?或者我是否只需更新所有函数并向所有下游调用添加新参数“Sub”?

我指的是使用某种全局变量来访问请求特定数据(来自 JWT 令牌的 SUB)。我知道这是一个不好的做法 - 我只是想知道除了传递请求特定数据之外是否还有其他方法可以实现此目的?如有任何帮助,我们将不胜感激。


解决方案


这确实是上下文的全部要点 - 它的存在是为了保存这些类型的东西并在链上传递。这很重要,因为您希望将其范围限制在请求范围内——如果您开始使用全局变量,您可能会遇到争用问题,因为多个请求会混淆相同的数据。同样,如果令牌在请求之间无效。

如果您的身份验证中间件在查询之前运行(听起来确实如此),那么只需让它以您满意的方式将主题放入上下文中即可。

本篇关于《Go 语言中如何获取指定请求的数据?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>