Rivet - HTTP 路由管理器


BSD
跨平台
Google Go

软件简介

专注路由.简洁, 贪心匹配, 支持注入, 可定制, 深度解耦的 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) 
}