![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
7天实现Gee框架
vd_vd
简单粗暴
展开
-
day7|错误恢复
其实就是由于越界等问题所导致的panic,我们该如何解决文中提到了两个方法,一种是使用defer,推迟错误的执行第二种:recover函数 (需要在defer里面生效)可以避免panic生效而导致整个函数终止。原创 2024-03-28 21:08:39 · 234 阅读 · 0 评论 -
Day 6 模版 template
实现静态资源服务支持HTML渲染后端需解决资源利用,并发,数据库存储问题.之前在设置动态路由的时候,通配符*支持匹配多级子路径映射到真实文件后,将文件返回,静态服务器就已经实现了找到文件之后,将文件返回给writwr的这一步 net/http库已经实现了因此,我们要做的只是解析请求的地址,映射服务器上真实的地址,交给http.FileServer处理我们给RouterGroup添加了两个方法,static这个方法是暴露给用户的。原创 2024-03-28 21:08:03 · 203 阅读 · 0 评论 -
day 5|中间件
本节目标:设计并实现 Web 框架的中间件(Middlewares)机制。实现通用的Logger中间件,能够记录请求到响应所花费的时间,原创 2024-03-28 21:07:27 · 489 阅读 · 0 评论 -
day4|分组控制
我们这样做的目的是我们可以像原来一样,通过Engine添加路由规则和方法,然后Group也可以添加路由和方法。唯一要注意的就是go.mod注意那个名称,我们不是已经新建了几个mod了嘛,在每一天下面,注意mod的名称。然后这里就将Engine作为最顶层的分组了,Engine拥有RouteGroup所有的能力。我们通常是以相同的前缀来区分路由分组,而作用在分组上的中间件,都会作用在子分组。开头的路由是 RESTful 接口,可以对接第三方平台,需要三方平台鉴权。每次的moule的名称要不一样啊。原创 2024-03-28 12:31:46 · 257 阅读 · 0 评论 -
day 3前缀树路由
我们的ListenAndServe方法的第二个参数类型就是Handler,也就是说只要实现了Handler接口,就可以作为第二个参数。我们现在Engine还是主要包含路由器router,router里面现在又包含了一个处理程序和一个Tree的结构。Handler是一个 接口,需要实现方法ServeHTTP,这样的一般用于静态服务器,能够递归的匹配子路径。前缀树就是所有的子节点都有一个共同的祖先节点。感觉自己消化的并不是很好,开始复习前面的内容。所有的HTTP请求,都会交给该实例处理。如果我们想支持类似于。原创 2024-03-28 11:18:30 · 387 阅读 · 0 评论 -
day 2| 上下文Context
再次来解释一下上下文,我也忘了,问下chatgpt上下文在 Go Web 开发中是指与当前 HTTP 请求相关的环境信息,它提供了更多的控制和功能来处理 HTTP 请求和响应。也就是对get和POST方法的强化对于处理 HTML 或 JSON 等响应内容,上下文同样是一个重要的组成部分。在处理 HTTP 请求时,上下文不仅包含了与请求相关的信息,还包括了与响应相关的信息。本节需要完成的 :将路由独立出来,方便之后增强设计上下文(CONTEXXT),封装Request和Response,原创 2024-03-28 11:16:38 · 377 阅读 · 0 评论 -
day 1 HTTP基础
仅仅是一个笔记,在此对geektutu大神膜拜用curl这个工具测试首先我们来解释一下curlcurl是一个命令行工具和库,用于在各种网络协议下传输数据,支持多种数据curl可以通过URL从服务器下载或上传数据,具有许多功能注意,我们现在已经自己实现了ServeHTTP,有了自己的处理思维了,而不在需要按照之前系统默认的那样,还需要创建一个处理程序,但是我们也不可能将所有的处理函数都放在ServeHTTP中,这个时候,我们需要沿着如何更好的回应系统中的请求的方向继续设计。原创 2024-03-28 11:12:37 · 429 阅读 · 0 评论