gpt4 book ai didi

go - HTTP处理函数

转载 作者:IT王子 更新时间:2023-10-29 01:16:29 26 4
gpt4 key购买 nike

我看到一些 http 处理程序函数声明是多种多样的。我发现其中两个是标准函数和一个返回处理程序内部的匿名函数。例如:

使用标准方式:

func helloworld(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello World")
}

这是为 http api 声明处理程序的最直接方法。

另一种方法是在处理函数中使用匿名/闭包函数:

func helloworld2() http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request){
fmt.Fprintln(w, "Hello World")
})
}

有什么区别和好处?什么时候使用其中之一?最佳做法是什么?

最佳答案

图案

func Middleware(next http.Handler) http.Handler{
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Do something
next.ServeHTTP(w, r)
})
}

常用于构造中间件链如

http.Handle("/", middlewareOne(middlewareTwo(finalHandler)))

关于go - HTTP处理函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49025811/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com