golang 搭了一个 web 框架,,,

2019-04-08 12:46:40 +08:00
 wlgq2
C 艹转 golang,重复造了轮子👀👻,搭了一个功能较完备的 web 框架。
包括 request 数据绑定,response json/string/jsonp/html/xml/冲定向 /文件等,静态文件,模板,及中间件……
实现参考过 echo/gin/martoni。路由是自己写的 radix tree,,,
项目:www.github.com/wlgq2/meerkat
4375 次点击
所在节点    Go 编程语言
21 条回复
loading
2019-04-08 12:49:14 +08:00
都造轮子,就是没人去把现在轮子上的无螺纹螺丝改一下。
kimomoqueen
2019-04-08 12:51:03 +08:00
meerkat is a web framework bese golang.错别字 base
wlgq2
2019-04-08 12:52:28 +08:00
@kimomoqueen 噗,
baojiweicn2
2019-04-08 13:01:43 +08:00
based on?
wlgq2
2019-04-08 13:06:18 +08:00
现在理解某位 top1 的痛苦了,
ChillyPrince
2019-04-08 13:16:46 +08:00
这种重复造轮子的活对自己益处挺大的,能真正从底层理解很多机制。但对别人嘛……
wangsongyan
2019-04-08 13:20:55 +08:00
LevelFatel

if req == nil || req.Body == nil {
errors.New("req is null.")
}
lonelygo
2019-04-08 13:23:16 +08:00
貌似首星星了。
wlgq2
2019-04-08 13:28:30 +08:00
@ChillyPrince 是吧,造了网络轮子后看 libuv 代码实现确实受益
naiba
2019-04-08 13:30:14 +08:00
路由支持正则吗,或者同级目录下有自定义参数路由还可以有固定路由
wlgq2
2019-04-08 13:35:33 +08:00
@naiba 你说的可以实现啊🐵,问题是如果这样如何判定这个路由是固定路由还是自定义参数路由?固定路由优先?
naiba
2019-04-08 14:38:36 +08:00
@wlgq2 所以你的框架没有咯
huiyifyj
2019-04-08 14:46:49 +08:00
echo gin beego 轮子好多,如果功能不全,不如研究这些源码去研究底层。
herozzm
2019-04-08 14:48:21 +08:00
go 的 html 模版实在太难用了 再好的 go web 框架不解决这个问题都是白搭
bequt
2019-04-08 14:49:26 +08:00
v 语言最近好像要开源
alexmy
2019-04-08 15:05:11 +08:00
也正在造,正在写各种中间件。我还是觉得 go web 还是做 API 吧。前端还是用 react 的,比如 next.js ,beidou。
linxb
2019-04-08 15:31:55 +08:00
@wlgq2 这个可以做个配置项,手动选择配置优先级
wlgq2
2019-04-08 22:33:42 +08:00
@naiba 刚看了一下代码,同级目录下自定义参数路由同时有固定路由是可以的,优先级取决使用者设定的先后顺序,先设置固定路由即固定路由优先,反之,
naiba
2019-04-09 06:10:31 +08:00
@wlgq2 那还不错,gin 的路由是不支持的,我感觉你洗好测试一下再说
wlgq2
2019-04-09 11:07:29 +08:00
@naiba 昨晚试过,不是刻意设计的功能,之前写路由 radix tree 时候默认就这么实现,固定路由和自定义参数都会插入一个节点,先插入哪个则哪个优先…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/552916

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX