RivetHTTP 路由管理器

联合创作 · 2023-09-20 11:49

专注路由.简洁, 贪心匹配, 支持注入, 可定制, 深度解耦的 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) 
}
浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报