专注路由.简洁, 贪心匹配, 支持注入, 可定制, 深度解耦的 http 路由管理器.
examples 目录中有几个例子, 方便您了解 Rivet.这里有个路由专项评测 go-http-routing- benchmark.
示例代码:
package main import ( "io" "net/http" "github.com/typepress/rivet" ) // 常规风格 handler func HelloWord(rw http.ResponseWriter, req *http.Request) { io.WriteString(rw, "Hello Word") } /** 带参数的 handler. params 是从 URL.Path 中提取到的参数. params 的另一种风格是 PathParams/Scene. 参见 Scene. */ func Hi(params rivet.Params, rw http.ResponseWriter) { io.WriteString(rw, "Hi "+params.Get("who")) // 提取参数 who } func main() { // 新建路由管理器 mux := rivet.NewRouter(nil) // 下文解释参数 nil // 注册路由 mux.Get("/", HelloWord) mux.Get("/:who", Hi) // 参数名设定为 "who" // rivet.Router 符合 http.Handler 接口 http.ListenAndServe(":3000", mux) }