大家好,今天手写了一个精简的web框架nio,主要借鉴了gin框架极简的特点,实现方式却gin用很大差异,nio虽然比较精简,但是麻雀虽小,五脏俱全
(注:这套框架开发的项目需要有go语言http库的知识和web后端开发的经验和并熟悉相应工作流程)
首先介绍一个相对成熟的web框架的主要部分,1.请求处理,2.上下文信息,3.路由分块,4.中间件,5.模板渲染 ,6.静态资源渲染,7.异常处理
OK,我们现在开始
1.初始化项目结构
2.完成nio框架的程序初始化
接下来,我们先完成nio模块里面的nio.go,主要是写一些关于nio框架以后所需要的全局变量template和传递上下文信息的Context结构体,block是用于对请求的路由分块,Init()方法是用于初始化nio框架用的,Run()方法来启动nio框架
3.完成nio框架对客户端请求响应所需的方法
4.执行路由所有的中间件和当前路由绑定方法
5.完成客户端不同类型的请求
6.加载模板
然后我们打开我之前在nio.go文件里注释的loadTemplate()方法
实现api.go文件里的HTML()方法
7.错误处理
然后我们打开我之前在handle.go文件里注释的loadTemplate()方法
8.nio框架完成
9.nio框架测试
新建html和image目录,并完成其子目录和子文件的创建,test目录中新建main.go文件(注:html目录和image目录并不属于nio框架的一部分,只是用来测试用的)
OK,我们已经完成了nio框架的开发,是不是很有意思呢