- 2024-02-01Mygin上下文之sync.Pool复用
本篇是mygin的第七篇,参照gin框架,感兴趣的可以从Mygin第一篇开始看,Mygin从零开始完全手写,在实现的同时,带你一窥gin框架的核心原理实现。目的sync.Pool的作用介绍mygin中使用sync.Poolsync.Pool的作用先看看官方文档怎样说的吧,我截取了官方文档的第一句。//APoolisa
- 2024-01-30Mygin中间件优化及logger日志中间件
本篇是mygin的第七篇,参照gin框架,感兴趣的可以从Mygin第一篇开始看,Mygin从零开始完全手写,在实现的同时,带你一窥gin框架的核心原理实现。目的中间件Middleware优化默认log日志中间件在上篇Mygin实现中间件Middleware中间件Middleware很生硬,完全依赖循环,如果某个中间件想要c
- 2024-01-30Mygin中间件优化及sync.Pool上下文复用
本篇是mygin的第六篇,参照gin框架,感兴趣的可以从Mygin第一篇开始看,Mygin从零开始完全手写,在实现的同时,带你一窥gin框架的核心原理实现。目的中间件Middleware优化默认log日志中间件在上篇Mygin实现中间件Middleware中间件Middleware很生硬,完全依赖循环,如果某个中间件想要c
- 2024-01-26Mygin实现中间件Middleware
本篇是mygin的第六篇,参照gin框架,感兴趣的可以从Mygin第一篇开始看,Mygin从零开始完全手写,在实现的同时,带你一窥gin框架的核心原理实现。目的实现中间件Middleware在上一篇Mygin实现分组路由Group中,实现了路由分组,且同一分组的执行,会先执行Group,有一点点中间件的雏形了。但
- 2024-01-24Mygin实现分组路由Group
本篇是Mygin第五篇目的实现路由分组为什么要分组分组控制(GroupControl)是Web框架应该提供的基础功能之一,对同一模块功能的开发,应该有相同的前缀。或者对一部分第三方接口,统一需要加解密等功能。分组后很方便。例如:对于任务模块,统一前缀为/task除去/user/login接口,都
- 2024-01-23Mygin实现动态路由
本篇是Mygin的第四篇目的使用Trie树实现动态路由解析。参数绑定前缀树本篇比前几篇要复杂一点,原来的路由是用map实现,索引非常高效,但是有一个弊端,键值对的存储的方式,只能用来索引静态路由。遇到类似hello/:name这动态路由就无能为力了,实现动态路由最常用的数据结构,被称为
- 2024-01-17Mygin实现上下文
本篇是Mygin的第三篇目的将路由独立出来,方便后续扩展修改上下文Context,对http.ResponseWriter和http.Request进行封装,实现对JSON、HTML等的支持路由新建一个router文件,将Mygin实现简单的路由中将路由部分复制出来新建Mygin/router.gopackagemyginimport( "log"
- 2024-01-16Mygin实现简单的路由
本文是Mygin第二篇目的:实现路由映射提供了用户注册静态路由方法(GET、POST方法)基于上一篇Mygin实现简单Http且参照Gin我使用了map数组实现简单路由的映射关系不同的method对应一个组,Gin框架初始化时map时初始化9个,因为支持的http.method刚好为9个packagehttp//Gin
- 2024-01-16Mygin 实现简单Http
本篇是完全参考gin的功能,自己手动实现一个类似的功能,帮助自己理解和学习gin框架目的简单介绍net/http库以及http.Handler接口实现简单的功能标准库启动Web服务import"net/http"funchelloHandler(whttp.ResponseWriter,r*http.Request){ w.Write([]byte("hellowor