Golang Go语言中搭了一个web框架

发布于 1周前 作者 sinazl 来自 Go语言

Golang Go语言中搭了一个web框架
C 艹转 golang,重复造了轮子👀👻,搭了一个功能较完备的 web 框架。
包括 request 数据绑定,response json/string/jsonp/html/xml/冲定向 /文件等,静态文件,模板,及中间件……
实现参考过 echo/gin/martoni。路由是自己写的 radix tree,,,
项目:www.github.com/wlgq2/meerkat


更多关于Golang Go语言中搭了一个web框架的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

22 回复

都造轮子,就是没人去把现在轮子上的无螺纹螺丝改一下。

更多关于Golang Go语言中搭了一个web框架的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


meerkat is a web framework bese golang.错别字 base

现在理解某位 top1 的痛苦了,

这种重复造轮子的活对自己益处挺大的,能真正从底层理解很多机制。但对别人嘛……

LevelFatel

if req == nil || req.Body == nil {
errors.New(“req is null.”)
}

貌似首星星了。

是吧,造了网络轮子后看 libuv 代码实现确实受益

路由支持正则吗,或者同级目录下有自定义参数路由还可以有固定路由

你说的可以实现啊🐵,问题是如果这样如何判定这个路由是固定路由还是自定义参数路由?固定路由优先?

所以你的框架没有咯

echo gin beego 轮子好多,如果功能不全,不如研究这些源码去研究底层。

go 的 html 模版实在太难用了 再好的 go web 框架不解决这个问题都是白搭

v 语言最近好像要开源

也正在造,正在写各种中间件。我还是觉得 go web 还是做 API 吧。前端还是用 react 的,比如 next.js ,beidou。

这个可以做个配置项,手动选择配置优先级

刚看了一下代码,同级目录下自定义参数路由同时有固定路由是可以的,优先级取决使用者设定的先后顺序,先设置固定路由即固定路由优先,反之,

那还不错,gin 的路由是不支持的,我感觉你洗好测试一下再说

昨晚试过,不是刻意设计的功能,之前写路由 radix tree 时候默认就这么实现,固定路由和自定义参数都会插入一个节点,先插入哪个则哪个优先…

不错不错,我博客引擎文章、单页、管理后台都在一层,还是自己搞的顺序正则匹配

在Go语言中搭建一个Web框架是一个非常常见的任务,它通常涉及到使用Go的标准库或者第三方库来构建HTTP服务器,并处理请求和响应。以下是一些关于在Go中搭建Web框架的基本步骤和注意事项:

  1. 选择框架:Go语言社区提供了多种Web框架,如Gin、Echo、Fiber等。每个框架都有其独特的特性和优势,你可以根据项目需求选择合适的框架。

  2. 设置路由:路由是Web应用的核心,它决定了如何将用户的请求映射到相应的处理函数。在Go中,你可以使用框架提供的路由功能来定义URL模式和处理函数。

  3. 处理请求:在Go中,你可以通过读取HTTP请求对象来获取请求参数、请求头等信息。然后,你可以根据这些信息来处理请求,并生成相应的HTTP响应。

  4. 模板渲染:对于需要返回HTML页面的场景,你可以使用Go的模板引擎来渲染HTML模板。模板引擎允许你将动态数据嵌入到静态HTML中。

  5. 中间件:中间件是处理HTTP请求的一种通用机制,它允许你在请求到达最终处理函数之前对其进行处理。中间件可以用于身份验证、日志记录、请求修改等任务。

  6. 测试与部署:在开发过程中,你应该编写单元测试来验证你的代码。当应用准备就绪后,你可以将其部署到生产环境中,并监控其性能。

总之,在Go语言中搭建Web框架需要掌握一些基本概念和技巧。通过不断学习和实践,你可以逐步提高自己的技能水平,并开发出高效、稳定的Web应用。

回到顶部