特性
- 简单易用、足够轻量
- 对 REST API 友好
- 完全兼容 http.HandlerFunc 接口
- Tree 路由高效并且支持正则
- 内置支持多端口多服务器
- 支持中间件
- 多种日志输出
- 异常恢复
- 平滑关闭/热重启
- 进程守护
- 依赖注入
- 遵循最小依赖原则,避免依赖地狱
- 更多(我还没想到。。。)
安装
go get -u github.com/sohaha/zlsgo
使用
// main.go package main import ( "github.com/sohaha/zlsgo/znet" ) func main(){ // 获取一个实例 r := znet.New() // 设置为开发模式 r.SetMode(znet.DebugMode) // 异常处理 r.Use(znet.Recovery(func(c *znet.Context, err error) { e := err.Error() c.String(500, e) })) // 注册路由 r.GET("/json", func(c *znet.Context) { c.JSON(200, znet.Data{"message":"Hello World"}) }) r.GET("/", func(c *znet.Context) { c.String(200, "Hello world") }) // 启动 znet.Run() }
启动服务:
go run .
成功后打开浏览器访问 :http://127.0.0.1:3788更多用法请查看:
路由设置服务配置初始化项目
# go get -u github.com/sohaha/zzz zzz init 新建项目目录
热重启
# 发送 USR2 即可实现热重启 kill -USR2 pid
日常开发
为了提高开发效率,比如代码更新就自动重新编译执行,可以配合 Zzz工具 使用。
Zzz 工具