httpsrv 是一个轻量级、模块化、高性能的 MVC Web 框架,专为 Go 语言设计,适用于开发面向互联网的各类 API、Web 应用。
- 模块化架构 - 业务代码通过模块组织管理,适合企业级复杂应用开发
- 轻量简洁 - 核心代码精简(约 3000 行),接口稳定可靠,便于长期维护
- 高性能 - 低内存占用,高并发稳定可靠,主流云服务商 2 核主机 QPS 可达 20000+
- MVC 模式 - 支持标准的 MVC 架构,代码结构清晰
- 模板引擎 - 内置模板引擎,支持灵活的视图渲染
- 多语言支持 - 内置 i18n 国际化支持
- 中间件 - 支持请求过滤和拦截器
- 会话管理 - 内置会话管理功能
go get -u github.com/hooto/httpsrv创建一个简单的 Hello World 应用:
package main
import (
"github.com/hooto/httpsrv"
)
// 定义一个控制器
type Hello struct {
*httpsrv.Controller
}
// 定义一个 Action
func (c Hello) WorldAction() {
c.RenderString("hello world")
}
// 创建模块
func NewModule() httpsrv.Module {
module := httpsrv.NewModule("demo")
module.ControllerRegister(new(Hello))
return module
}
func main() {
// 注册模块到全局服务
httpsrv.GlobalService.ModuleRegister("/", NewModule())
// 设置端口
httpsrv.GlobalService.Config.HttpPort = 8080
// 启动服务
httpsrv.GlobalService.Start()
}运行:
go run main.go访问:
curl http://localhost:8080/hello/world/输出:
hello world
推荐的目录结构:
├─ bin/ # 编译后的可执行文件
├─ etc/ # 配置文件
├─ config/ # 配置解析代码
├─ cmd/
│ └─ server/
│ └─ main.go # 服务入口
├─ data/ # 数据库访问层
├─ websrv/ # 模块目录
│ ├─ api-v1/ # API 模块
│ └─ frontend/ # 前端模块
│ └─ views/ # 模板文件
├─ webui/ # 静态文件
└─ var/ # 运行时数据
完整示例项目:httpsrv-demo
httpsrv 保持核心简洁,以下是一些推荐使用的第三方库:
- hlog4g - 日志库
- hini4g - INI 配置文件解析
- hflag4g - 命令行参数处理
- hlang4g - i18n 国际化
- hcaptcha4g - 验证码生成
更多 Go 生态库可参考:awesome-go
- Go 版本: 1.22 或更高
- 推荐系统: Linux、Unix 或 macOS(Windows 未做兼容测试)
- Service - 服务容器和配置管理
- Config - 配置文件处理
- Module - 模块管理和路由
- Controller - 控制器和请求处理
- Template - 模板渲染和视图
- Router - 路由配置和匹配
httpsrv 在架构设计和部分代码实现中参考过以下项目,特此感谢!