liuyousama / Router

Golang的一款简洁,快速的路由框架,可以用来快速构建restful服务(A simple router framework for Golang)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Router Build Status License Release

liuyousama/Router是为Golang设计的的一个简洁,快速的路由框架,可以用来快速构建restful服务(A simple router framework for Golang)

安装(Install)

go get github.com:liuyousama/Router

特性(Featurs)

  • RESTFUL风格
  • 路由参数
  • 路由分组
  • 中间件
  • 自定义 404 NotFound Handler

快速开始(Quick Start)

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!"))
}

RESTFUL风格

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)
    	}
}

About

Golang的一款简洁,快速的路由框架,可以用来快速构建restful服务(A simple router framework for Golang)

License:MIT License


Languages

Language:Go 100.0%