多路复用器

第三方路由介绍

  • 多路复用器,只需要实现ServeHTTP方法即可实现,
  • net/http包中的ServeMux提供了默认的路由方式,但是一个缺陷就是无法使用变量实现URL模式匹配,如/getId/123这种默认路由只能匹配/getId带上参数则匹配不了,
  • 这里介绍一个第三方httprouter,很好实现需求

go get github.com/julienschmidt/httprouter

package main

import (
    "fmt"
    "github.com/julienschmidt/httprouter"
    "net/http"
)

func hello(w http.ResponseWriter,r *http.Request,p httprouter.Params){
    fmt.Fprintf(w,"%s",p.ByName("name"))
}
func main(){
    mux := httprouter.New()
    mux.GET("/hello/:name",hello)
    server := http.Server{
        Addr:":8080",
        Handler:mux,
    }
    server.ListenAndServe()
}

你可能感兴趣的:(多路复用器)