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

golang 搭了一个 web 框架,,,

  •  
  •   wlgq2 ·
    wlgq2 · 2019-04-08 12:46:40 +08:00 via Android · 4473 次点击
    这是一个创建于 2064 天前的主题,其中的信息可能已经有所发展或是发生改变。
    C 艹转 golang,重复造了轮子👀👻,搭了一个功能较完备的 web 框架。
    包括 request 数据绑定,response json/string/jsonp/html/xml/冲定向 /文件等,静态文件,模板,及中间件……
    实现参考过 echo/gin/martoni。路由是自己写的 radix tree,,,
    项目:www.github.com/wlgq2/meerkat
    21 条回复    2019-04-09 13:28:47 +08:00
    loading
        1
    loading  
       2019-04-08 12:49:14 +08:00 via Android   ❤️ 1
    都造轮子,就是没人去把现在轮子上的无螺纹螺丝改一下。
    kimomoqueen
        2
    kimomoqueen  
       2019-04-08 12:51:03 +08:00 via Android
    meerkat is a web framework bese golang.错别字 base
    wlgq2
        3
    wlgq2  
    OP
       2019-04-08 12:52:28 +08:00 via Android
    @kimomoqueen 噗,
    baojiweicn2
        4
    baojiweicn2  
       2019-04-08 13:01:43 +08:00 via Android
    based on?
    wlgq2
        5
    wlgq2  
    OP
       2019-04-08 13:06:18 +08:00 via Android
    现在理解某位 top1 的痛苦了,
    ChillyPrince
        6
    ChillyPrince  
       2019-04-08 13:16:46 +08:00
    这种重复造轮子的活对自己益处挺大的,能真正从底层理解很多机制。但对别人嘛……
    wangsongyan
        7
    wangsongyan  
       2019-04-08 13:20:55 +08:00
    LevelFatel

    if req == nil || req.Body == nil {
    errors.New("req is null.")
    }
    lonelygo
        8
    lonelygo  
       2019-04-08 13:23:16 +08:00
    貌似首星星了。
    wlgq2
        9
    wlgq2  
    OP
       2019-04-08 13:28:30 +08:00 via Android
    @ChillyPrince 是吧,造了网络轮子后看 libuv 代码实现确实受益
    naiba
        10
    naiba  
       2019-04-08 13:30:14 +08:00 via Android
    路由支持正则吗,或者同级目录下有自定义参数路由还可以有固定路由
    wlgq2
        11
    wlgq2  
    OP
       2019-04-08 13:35:33 +08:00 via Android
    @naiba 你说的可以实现啊🐵,问题是如果这样如何判定这个路由是固定路由还是自定义参数路由?固定路由优先?
    naiba
        12
    naiba  
       2019-04-08 14:38:36 +08:00 via Android
    @wlgq2 所以你的框架没有咯
    huiyifyj
        13
    huiyifyj  
       2019-04-08 14:46:49 +08:00 via Android
    echo gin beego 轮子好多,如果功能不全,不如研究这些源码去研究底层。
    herozzm
        14
    herozzm  
       2019-04-08 14:48:21 +08:00 via iPhone
    go 的 html 模版实在太难用了 再好的 go web 框架不解决这个问题都是白搭
    bequt
        15
    bequt  
       2019-04-08 14:49:26 +08:00 via Android
    v 语言最近好像要开源
    alexmy
        16
    alexmy  
       2019-04-08 15:05:11 +08:00
    也正在造,正在写各种中间件。我还是觉得 go web 还是做 API 吧。前端还是用 react 的,比如 next.js ,beidou。
    linxb
        17
    linxb  
       2019-04-08 15:31:55 +08:00
    @wlgq2 这个可以做个配置项,手动选择配置优先级
    wlgq2
        18
    wlgq2  
    OP
       2019-04-08 22:33:42 +08:00
    @naiba 刚看了一下代码,同级目录下自定义参数路由同时有固定路由是可以的,优先级取决使用者设定的先后顺序,先设置固定路由即固定路由优先,反之,
    naiba
        19
    naiba  
       2019-04-09 06:10:31 +08:00 via Android
    @wlgq2 那还不错,gin 的路由是不支持的,我感觉你洗好测试一下再说
    wlgq2
        20
    wlgq2  
    OP
       2019-04-09 11:07:29 +08:00 via Android
    @naiba 昨晚试过,不是刻意设计的功能,之前写路由 radix tree 时候默认就这么实现,固定路由和自定义参数都会插入一个节点,先插入哪个则哪个优先…
    naiba
        21
    naiba  
       2019-04-09 13:28:47 +08:00 via Android
    @wlgq2 不错不错,我博客引擎文章、单页、管理后台都在一层,还是自己搞的顺序正则匹配
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2658 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:57 · PVG 17:57 · LAX 01:57 · JFK 04:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.