go语言中HttpRouter多路复用器路由功能示例代码

2023-06-01 00:00:00 语言 示例 多路

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

相关文章