内容简介:之前我们项目中遇到的问题是代码重复。在处理请求之前,我们通常需要进行日志记录,异常捕获,用户认证等操作。并且这些操作需要被应用到每一个处理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:换个姿势理解中间件
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Professional JavaScript for Web Developers
Nicholas C. Zakas / Wrox / 2009-1-14 / USD 49.99
This eagerly anticipated update to the breakout book on JavaScript offers you an in-depth look at the numerous advances to the techniques and technology of the JavaScript language. You'll see why Java......一起来看看 《Professional JavaScript for Web Developers》 这本书的介绍吧!
在线进制转换器
各进制数互转换器
HEX HSV 转换工具
HEX HSV 互换工具