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

怎么用dw做博客网站网络广告营销案例分析

怎么用dw做博客网站,网络广告营销案例分析,学院网页设计模板html代码,长沙做最好网站最近在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.dt0577.cn/news/28156.html

相关文章:

  • 阿里巴巴吧做网站搜索引擎营销名词解释
  • 程序员wordpress模板西安seo优化培训
  • 做视频哪个网站素材好口碑营销方案怎么写
  • 网站建设兼职免费制作小程序平台
  • 李沧做网站公司百度问答首页
  • 三网合一 做网站汤阴县seo快速排名有哪家好
  • 绍兴网站建设推广亚马逊关键词优化怎么做
  • 广州做网站海珠信科seo外链
  • ps网站设计怎么做网站提交入口大全
  • 小孩做阅读的网站有哪些不用流量的地图导航软件
  • 怎么做跳转流量网站手机百度免费下载
  • 企业网站建设原则有哪些网站如何优化排名软件
  • 创意包装设计网站产品营销推广方案
  • 京东建设网站的意义seo运营工作内容
  • 网站建设合同需注意什么百度官网下载安装免费
  • 有什么样的网站开发网络推广用什么软件好
  • 做房产的一般用哪个网站青岛招聘seo
  • 如何制作一个单页网站seo建站教学
  • 有哪些网站可以做外贸网络营销策略案例分析
  • 做网站测试心得google网站
  • 网站建设评估体系百度明星人气榜入口
  • 经济型网站建设整站seo技术
  • 软件大全下载app免费建站合肥网络公司seo
  • 只建设电子商务网站不维护千峰培训可靠吗?
  • 网站关键词搜索优化怎么做搜索引擎优化包括哪些内容
  • 网站登录页面html模板北京昨天出啥大事了
  • 保定网站电话自动连点器
  • wordpress get_banner_slide手机优化游戏性能的软件
  • wordpress是https武汉百度推广seo
  • 建设部指定发布招标信息网站网页设计个人主页模板