liuyousama/Router
是为Golang设计的的一个简洁,快速的路由框架,可以用来快速构建restful服务(A simple router framework for Golang)
go get github.com:liuyousama/Router
- RESTFUL风格
- 路由参数
- 路由分组
- 中间件
- 自定义 404 NotFound Handler
func main() {
r := Router.New()
r.GET("/helloRouter",HelloRouterHandler)
http.ListenAndServe(":8080", r)
}
func HelloRouterHander(w http.ResponseWriter, r *http.Request) {
w.Write([]Byte("Hello!Router!"))
}
r := Router.New()
r.GET("/user",GetHandler)
r.POST("/user",PostHandler)
r.PUT("/user",PutHandler)
r.DELETE("/user",DeleteHandler)
r.PATCH("/user",PatchHandler)
- 设置参数
r.GET("/user/:id",GetHandler)
- 获取参数
func GetHandler(w http.ResponseWriter, r *http.Request) {
var paramMap map[string]string
paramMap = Router.GetAllParams(r)
id := paramMap["id"]
//或者
id := Router.GetParam(r, "id")
}
r := Router.New()
userGroup := r.Group("user")
{
userGroup.GET("/list", GetUserListHandler)
}
- 使用全局路由
r := Router.New()
r.Use(Logging,WriteHeader)
func Logging(next http.HanderFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
log.Printf("New request comes from %s",r.RemoteAddr))
next.ServeHTTP(w, r)
}
}
func Logging(next http.HanderFunc) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOk)
next.ServeHTTP(w, r)
}
}