# web_framework **Repository Path**: go-web-2/web_framework ## Basic Information - **Project Name**: web_framework - **Description**: web框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-31 - **Last Updated**: 2025-08-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # web框架 - web框架是做什么的 - 为什么封装web框架,不直接使用net/http? - web框架核心 ## web框架是做什么的 处理http请求,为用户提供便捷api,提供插件机制扩展框架能力,提供默认功能如上传下载 ## 为什么封装web框架,不直接使用net/http?(web框架核心) 高级路由功能,封装上下文以提供便捷api,封装server提供生命周期,提供插件机制扩展框架能力 ## 路由注册 支持用户选择路由handler,已实现treeRoute 支持路由:静态路由、参数路由(/a/:id)、正则路由、动态路由(/a/*),路由命中优先级按照前面的顺序 ### 演示 测试代码:web/test/server_route_test.go ![路由注册演示](readme.assets/路由注册演示.gif) ## 静态资源访问 使用lru缓存,支持扩展文件类型 ,已防御文件访问路径漏洞 ### 演示 测试代码:web/test/static_resource_test.go ![静态资源访问演示](readme.assets/静态资源访问演示.gif) ## 上传下载服务 ### 演示 ![上传下载服务](readme.assets/上传下载服务.gif) ## 提供默认能力 ### templateEngine 以插件形式支持注册templateEngine,在业务handleFunc中使用 测试代码:web/test/template_test.go ### 优雅退出 - 拒绝新请求 - 等待已接收请求处理完成 - 关闭所有服务 - 释放资源 - 超时强制退出 #### 演示 测试代码:web/test/graceful_shutdown_test.go 注意:该代码必须放在main函数下运行,test文件下无法监听到退出信号 ![优雅退出](readme.assets/优雅退出.gif) ### observer 数据监控 以插件方式提供内置日志记录、zipkin tracer、prometheus vector统计 #### 演示 ##### zipkin tracer(暂未提供多系统微服务调用) ![image-20250414150859400](readme.assets/zipkin.png) ##### premetheus vector ![image-20250414153140743](readme.assets/vector.png) ## 业务能力 ### 单机登录 使用session、redis实现单机登录 ### 演示 ![单机登录_redis-session](readme.assets/单机登录_redis-session.gif) ### 测试 web框架完成,可通过test文件测试 // 后续将调整目录结构,移除test文件 测试文件存在对应commit:7e7f7d837b5c94deaab20ea99710cb2b27abaf9a ## 技术设计 详见:https://gitee.com/luyue_zhang/go-web