cedar-router 基于前缀树算法的 golang router开源项目

我要开发同款
匿名用户2020年02月10日
80阅读
开发技术GO语言
所属分类Google Go、路由器/防火墙、服务器软件
授权协议GPL

作品详情

cedar,轻量级Golang路由器,基于前缀树算法。

cedar.NewRouter().Get(prefix,http.HandlerFunc,http.Handler)

推荐组件

session

更新

现在支持了模糊路由匹配

r.Get("/index/:id",func(whttp.ResponseWriter,r*http.Request){fmt.Println(r.URL.Fragment)//<-usethis,getthe`id`},nil)

全局方法

r.GlobalFunc("test",func(r*http.Request)error{fmt.Println("123213")returnnil})

支持常见的method

r:=cedar.NewRouter()r.Get("/",http.HandlerFunc(),nil)r.Post("/",http.HandlerFunc(),nil)r.Put("/",http.HandlerFunc(),nil)r.Delete("/",http.HandlerFunc(),nil)

handFunc和Handler在同一路径下我建议只填写一个.测试通过websocket,静态文件路由需要改写ServerHTTP方法.我默认在当前路径下static/

同一路由下不同Method,会覆盖前面的的HandlerFunc和Handler

新版本修复了该问题

群组路由

r:=cedar.NewRouter()r.Group("/a",func(group*cedar.Groups){group.Get("/b",http.HandlerFunc(),nil)group.Group("/c",func(groups*cedar.Groups){group.Get("/d",http.HandlerFunc(),nil)})})

同时也支持RestFul风格

r:=cedar.NewRestRouter(cedar.RestConfig{EntryPath:"blog",ApiName:"api",Pattern:".",})r.Get("user",func(writerhttp.ResponseWriter,request*http.Request){r.Template(writer,"/index")},nil)//localhost/blog?api=user

通过 localhost/blog?api=user 获得访问.

软件稳定运行在服务器

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论