当前位置: 首页 > wzjs >正文

企业宣传网站建设制作投票链接哪家好厂商

企业宣传网站建设,制作投票链接哪家好厂商,网站建设策划书结束语,wordpress 整站采集最近在GitHub上发起了一个关于Beego框架的小插件的开源仓库,这一举动虽然看似微小,但其中的快乐和意义却是无法用言语表达的。 Beego是一个开源的Go语言Web框架,它采用了MVC架构模式,并集成了很多常用的功能和中间件。小插件是指…

最近在GitHub上发起了一个关于Beego框架的小插件的开源仓库,这一举动虽然看似微小,但其中的快乐和意义却是无法用言语表达的。

Beego是一个开源的Go语言Web框架,它采用了MVC架构模式,并集成了很多常用的功能和中间件。小插件是指与Beego框架配套使用的、可扩展的、独立的软件模块或组件。通过开发小插件,可以扩展Beego框架的功能,提高开发效率和代码可维护性。

Beego-Requestid是一种中间件(Middleware),用于在处理HTTP请求时,为每个请求生成一个唯一的ID,并将其附加到请求上下文中。这样,您可以在应用程序的其他地方方便地访问这个唯一的请求ID,从而更好地跟踪和调试应用程序。

使用RequestId中间件可以帮助您解决以下问题:

  1. 跟踪请求:通过在每个请求中添加唯一的ID,您可以轻松地在应用程序中跟踪请求的来源和路径。这对于调试和性能优化非常有用。
  2. 日志记录:您可以使用请求ID将日志记录与特定请求关联起来。这样,当您在日志中查找特定请求的信息时,可以更方便地定位相关的日志条目。
  3. 错误处理:如果应用程序中出现错误,请求ID可以帮助您识别是哪个请求引发了错误。这对于故障排查和问题报告非常有帮助。
代码

话不多说直接看源码:

package beego_requestidimport ("github.com/beego/beego""github.com/beego/beego/context""github.com/google/uuid"
)const DefaultHeaderReqIdKey = "X-Request-Id"type Option func(config *Config)type GenRequestIdFunc func() stringtype Config struct {genRequestIdFunc               GenRequestIdFuncheaderReqIdKey, customReqIdKey string
}func NewFilter(opts ...Option) beego.FilterFunc {cnf := &Config{genRequestIdFunc: DefaultGenRequestIdFunc,headerReqIdKey:   DefaultHeaderReqIdKey,}for _, opt := range opts {opt(cnf)}return func(c *context.Context) {reqId := c.Request.Header.Get(cnf.headerReqIdKey)if reqId == "" {reqId = cnf.genRequestIdFunc()c.Request.Header.Add(cnf.headerReqIdKey, reqId)}if cnf.customReqIdKey != "" {c.Input.SetData(cnf.customReqIdKey, reqId)}}
}func WithGenRequestIdFunc(genFunc GenRequestIdFunc) Option {return func(config *Config) {config.genRequestIdFunc = genFunc}
}func WithHeaderReqIdKey(key string) Option {return func(config *Config) {config.headerReqIdKey = key}
}func WithCustomReqIdKey(key string) Option {return func(config *Config) {config.customReqIdKey = key}
}func DefaultGenRequestIdFunc() string {return uuid.NewString()
}

使用示例:

package mainimport ("log""time""github.com/spf13/cast""github.com/beego/beego""github.com/beego/beego/context"beego_requestid "github.com/ibarryyan/beego-requestid"
)func example1() {beego.InsertFilter("/*", beego.BeforeRouter, beego_requestid.NewFilter())beego.Get("/hello", func(c *context.Context) {reqId := c.Request.Header.Get("X-Request-Id")log.Printf("reqestid = %s", reqId)_, _ = c.ResponseWriter.Write([]byte("hello..."))return})beego.Run(":9900")
}func example2() {beego.InsertFilter("/*", beego.BeforeRouter, beego_requestid.NewFilter(beego_requestid.WithGenRequestIdFunc(func() string {return cast.ToString(time.Now().Unix())}),beego_requestid.WithHeaderReqIdKey("my_header_reqid"),beego_requestid.WithCustomReqIdKey("my_reqid"),))beego.Get("/hello", func(c *context.Context) {reqId := c.Request.Header.Get("my_header_reqid")log.Printf("reqestid = %s", reqId)cReqId := c.Input.GetData("my_reqid")log.Printf("my reqestid = %s", cReqId)_, _ = c.ResponseWriter.Write([]byte("hello..."))return})beego.Run(":9900")
}

此外,前端请求时需要带上header key要与后端的一致

获得快乐

发完代码后我就直接去Beego的GitHub仓库下提了一个issue,来分享的研究的中间件,地址:https://github.com/beego/beego/issues/5419,后来没想到竟然收到了回复,哈哈哈

在这里插入图片描述

然后我立马就去新的issue分享了我的插件

https://github.com/beego/beego/issues/5421

再后来,我就有两个star了~

在这里插入图片描述

仓库地址

https://github.com/ibarryyan/beego-requestid

http://www.dtcms.com/wzjs/841351.html

相关文章:

  • 装饰协会网站源码网站建设 阿里
  • 音乐网站模板免费源码惠州网站制作定制
  • 萍乡企业网站建设手机网站如何建立
  • 网站整合营销建设大连市建设局网站
  • 上海有制作网站的电话吗网站后台页面进不去
  • seo发外链网站网站正在建设中永久
  • html网站开发工具下载做网站至少要花多少钱
  • lanyun网站开发网站建设技术发展趋势预测
  • 零陵区住房和城乡建设局网站中国工程招标网
  • 静态网站模板2022年小微企业所得税优惠政策
  • 做遗嘱的网站有哪些广东建设厅网站个人怎么登录啊
  • wordpress rss 下一页兰州网站的优化
  • 江苏省住房与城乡建设厅网站建设视频网站
  • 一个新手如何做网站天津做不锈钢的网站
  • 国外工业产品设计网站青岛做网站皆赴青岛博采网络
  • 悟空建站是什么平山做网站优化
  • 怎么查公司的邮箱广州seo优化费用
  • 如何申请网站济南突然宣布
  • 下陆区建设局网站工作室创业项目
  • 平台网站开发是什么意思深圳住建局竣工备案查询官网
  • 个人做discuz网站备案金属网站模板
  • 北京网站建设咸宁长沙seo优化多少钱
  • 网站前台如何做访问量显示免费建站软件
  • 起域名网站dw网页设计模板网站
  • 网站开发广告怎么写网站做镜像是什么
  • 网站 模板 安装深圳建筑设计院排名
  • 哈尔滨市建设安全监察网站_首页中国最厉害的室内设计师
  • 嘉定企业网站制作wordpress外贸效果
  • 小型网站搭建恩施兴州建设工程责任有限公司网站
  • yandex俄语网站建设wordpress多少钱一年