1. 如何实现Golang的http请求处理中间件(译)

    原文:Golang Http Handlers as Middleware

    译者:youngsterxyf

    大多数现代Web组件栈允许通过栈式/组件式中间件“过滤”请求,这样就能干净地从web应用中分离出横切关注点(译注:面向方面程序设计中的概念?)。 本周我尝试在Go语言的http.FileServer中植入钩子,发现实现起来十分简便,让我非常惊讶。

    让我们从一个基本的文件服务器开始说起:

    func main() {
        http.ListenAndServe(":8080", http.FileServer(http.Dir("/tmp")))
    }
    

    这段程序会在端口8080上开启一个本地文件服务器。那么我们该如何在这其中植入钩子从而能够在文件请求处理之前执行一些代码?来看一下http.ListenAndServe的方法签名:

    func ListenAndServe(addr string, handler Handler) error
    

    看起来http.FileServer返回了一个Handler …

    Tagged as : Golang 翻译 中间件

Page 1 / 1