摘要:
本篇是mygin这个系列的最后一篇。如果想自己动手实现一个类似Gin的Web框架,建议从 mgin第一篇开始, 总代码行数有效行数只有600多行 github源码 mygin 目的 实现错误处理机制 panic简介 在实现错误处理机制之前,我们知道在Go 中,错误的处理方式依靠return返回,由调 阅读全文
摘要:
本篇是mygin的第八篇,参照gin框架,感兴趣的可以从 Mygin第一篇 开始看,Mygin从零开始完全手写,在实现的同时,带你一窥gin框架的核心原理实现。 目的 sync.Pool 的作用介绍 mygin中使用sync.Pool sync.Pool 的作用 先看看官方文档怎样说的吧,我截取了官 阅读全文
摘要:
本篇是mygin的第七篇,参照gin框架,感兴趣的可以从 Mygin第一篇 开始看,Mygin从零开始完全手写,在实现的同时,带你一窥gin框架的核心原理实现。 目的 中间件Middleware优化 默认log日志中间件 在上篇 Mygin实现中间件Middleware 中间件Middleware很 阅读全文
摘要:
本篇是mygin的第六篇,参照gin框架,感兴趣的可以从 Mygin第一篇 开始看,Mygin从零开始完全手写,在实现的同时,带你一窥gin框架的核心原理实现。 目的 实现中间件Middleware 在上一篇 Mygin实现分组路由Group 中,实现了路由分组,且同一分组的执行,会先执行Group 阅读全文
摘要:
本篇是Mygin第五篇 目的 实现路由分组 为什么要分组 分组控制(Group Control)是 Web 框架应该提供的基础功能之一,对同一模块功能的开发,应该有相同的前缀。或者对一部分第三方接口,统一需要加解密等功能。分组后很方便。例如: 对于任务模块,统一前缀为/task 除去/user/lo 阅读全文
摘要:
本篇是Mygin的第四篇 目的 使用 Trie 树实现动态路由解析。 参数绑定 前缀树 本篇比前几篇要复杂一点,原来的路由是用map实现,索引非常高效,但是有一个弊端,键值对的存储的方式,只能用来索引静态路由。遇到类似hello/:name这动态路由就无能为力了,实现动态路由最常用的数据结构,被称为 阅读全文
摘要:
本篇是Mygin的第三篇 目的 将路由独立出来,方便后续扩展修改 上下文Context,对http.ResponseWriter和http.Request进行封装,实现对JSON、HTML等的支持 路由 新建一个router文件,将 Mygin实现简单的路由 中将路由部分复制出来 新建Mygin/r 阅读全文
摘要:
本文是Mygin第二篇 目的: 实现路由映射 提供了用户注册静态路由方法(GET、POST方法) 基于上一篇 Mygin 实现简单Http 且参照Gin 我使用了map数组实现简单路由的映射关系 不同的method对应一个组,Gin框架初始化时map时初始化9个,因为支持的http.method刚好 阅读全文
摘要:
本篇是完全参考gin的功能,自己手动实现一个类似的功能,帮助自己理解和学习gin框架。 目的 简单介绍net/http库以及http.Handler接口 实现简单路由请求的功能 标准库启动Web服务 先看用标准库怎样启动一个web服务 import "net/http" func helloHand 阅读全文
摘要:
springboot入参出参下划线转驼峰 前言 因为历史原因前端入参和出参都为下划线,下划线对有亿点强迫症的我来说是不可接受的。因此就有了下面这篇。 本篇基于之前的一篇springboot封装统一返回 - Scott_pb - 博客园 (cnblogs.com) 引入xml 因为是基于jackson 阅读全文