go语言中HttpRouter多路复用器路由功能示例代码
HttpRouter试图通过声称拥有更好的变量和路由支持来超越其他 Golang 多路复用器。
它还声称可以更好地扩展。HttpRouter处理参数的方式与其他路由器/多路复用器不同。
例如,它需要函数中的第三个参数来获取 URL 参数。
params httprouter.Params
而不是在功能块内
params := r.URL.Query()
name := params.Get(":name")
这是一个关于如何使用 HttpRouter 的代码示例。
package main
import (
"fmt"
"github.com/julienschmidt/httprouter"
"net/http"
)
func SayHelloWorld(w http.ResponseWriter, r *http.Request, _ httprouter.Params) {
w.Write([]byte("Hello, World!"))
}
func ReplyName(w http.ResponseWriter, r *http.Request, params httprouter.Params) {
//parameters := r.URL.Query()
name := params.ByName("name")
w.Write([]byte(fmt.Sprintf("Hello %s !", name)))
}
func main() {
mx := httprouter.New()
mx.GET("/", SayHelloWorld)
mx.GET("/:name", ReplyName)
http.Handle("/", mx)
http.ListenAndServe(":8080", mx)
}
输出:
http://localhost:8080/zongscan
你好zongscan!
http://localhost:8080/
你好世界 !
更多HttpRouter功能的完整列表,请参阅
https://github.com/julienschmidt/httprouter#features
相关文章