内容简介:之前我们项目中遇到的问题是代码重复。在处理请求之前,我们通常需要进行日志记录,异常捕获,用户认证等操作。并且这些操作需要被应用到每一个处理handler中。使用golang的基础包
【02-中间件】构建go web框架
之前我们项目中遇到的问题是代码重复。在处理请求之前,我们通常需要进行日志记录,异常捕获,用户认证等操作。并且这些操作需要被应用到每一个处理handler中。
开始之前回顾一下之前的项目
使用golang的基础包 net/http
创建了一个非常简单的应用
import "net/http" type DefaultHandler struct {} func (DefaultHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { path := r.URL.Path _, _ = w.Write([]byte(path + " wellcome to http server.")) } func userLogin(w http.ResponseWriter, r *http.Request) { path := r.URL.Path _, _ = w.Write([]byte(path + " wellcome to http server by handleFunc.")) } func main() { http.Handle("/", DefaultHandler{}) http.HandleFunc("/apis", userLogin) _ = http.ListenAndServe("0.0.0.0:8080", nil) }
http.Handle
接受两个参数,第二个参数类型是http.Handler, 它是一个接口类型包含了 ServeHTTP(ResponseWriter, *Request)
方法,所以任何实现了该方法的类型,都可以当作 http.Handler
来使用,传入 http.Handle
方法中。
现在,我们想要记录每个请求的耗时:
请输入代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 理解 Koa 框架中间件原理
- 中间件增强框架之InterceptFramework
- golang框架gin中间件的写法
- Koa框架实践与中间件原理剖析
- Gin 框架系列(三):换个姿势理解中间件
- Gin框架系列03:换个姿势理解中间件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
网页设计创意书(卷2)
麦克尼尔 / 图灵编辑部 / 人民邮电 / 2012-1 / 49.00元
《网页设计创意书(卷2)》是《网页设计创意书》的卷2,但并非其简单补充,而是作者基于近几年网站发展新趋势的再创作。《网页设计创意书(卷2)》先讲解了如何从他人的优秀设计中寻找灵感,接着阐述了重点、对比、平衡、对齐等网站设计的基本原则,然后将网站按类型、设计元素、风格和主题、结构样式和结构元素分类,并分章介绍了每一类的设计技巧。《网页设计创意书(卷2)》语言简练,结合作者精挑细选的网站实例,通俗易懂......一起来看看 《网页设计创意书(卷2)》 这本书的介绍吧!