middleware

原创
2019/11/17 19:11
阅读数 21
// basic-middleware.go
package main
import (
    "fmt"
    "log"
    "net/http"
)
func logging(f http.HandlerFunc) http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        log.Println(r.URL.Path)
        f(w, r)
    }
}
func foo(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "foo")
}
func bar(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintln(w, "bar")
}
func main() {
    http.HandleFunc("/foo", logging(foo))
    http.HandleFunc("/bar", logging(bar))
    http.ListenAndServe(":8080", nil)
}

参考

https://gowebexamples.com/basic-middleware/

https://chai2010.cn/advanced-go-programming-book/ch5-web/ch5-03-middleware.html

https://colobu.com/2019/08/21/decorator-pattern-pipeline-pattern-and-go-web-middlewares/

本文同步分享在 博客“羊羽”(other)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享

作者的其它热门文章

加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部