V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
xnotepad
V2EX  ›  Go 编程语言

分享一个自己的路由工具

  •  
  •   xnotepad ·
    caixw · 2021-11-12 04:57:52 +08:00 · 2589 次点击
    这是一个创建于 888 天前的主题,其中的信息可能已经有所发展或是发生改变。
    项目在 https://github.com/issue9/mux

    能够自动生成 OPTIONS 和 HEAD 的请求处理方式;
    也支持类似于 discuz 的路由风格,不会假定两个参数之间必须要有一个 / 符号分隔;
    能正确区分不同类型的参数,比如 `/posts/{id}` 和 `/posts/{id:\\d+}`,只有无法匹配后者的时候,才会尝试匹配前者;
    其它的中间件什么的也都有,感觉也玩不出什么花来了。

    维护了大概有 4-5 年时间,目前刚更新到 v5 版本,删除了部分无用的功能,个人感觉已经比较稳定了,该有的功能也都有了,性能上也不算太差,兼容官方的 http.Handler 接口。有兴趣的可以试试。

    关于性能,我自己做了一个对比数据: https://caixw.github.io/go-http-routers-testing/

    同时也提供了一组常用的中间件: https://github.com/issue9/middleware
    3 条回复    2021-11-13 15:17:24 +08:00
    BeijingBaby
        1
    BeijingBaby  
       2021-11-12 14:30:41 +08:00
    这类轮子太多了
    xnotepad
        2
    xnotepad  
    OP
       2021-11-12 15:18:37 +08:00
    @BeijingBaby 没办法,水平有限,只能造一些简单的轮子。
    liaohongxing
        3
    liaohongxing  
       2021-11-13 15:17:24 +08:00   ❤️ 1
    楼主的 identicon 一直在用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5880 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 01:57 · PVG 09:57 · LAX 18:57 · JFK 21:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.