使用go编写的web框架 – zen

老栗子 2019-09-12 12:00:08
zen is a lightweight go framework for web development zen是一个使用go编写的web框架,高性能,轻量级。 特性 高性能的HTTP router Reatful API 路径参数 组API 形式验证和结构约束 JSON和XML数据绑定 内置pinic处理器 根或者组级中间件 方便的响应函数 安装 go get github.com/philchia/zen 示例 启动一个服务器 func main() { server := zen.New() if err := server.Run(":8080"); err != nil { log.Println(err) } } 使用 GET, POST, PUT, PATCH, DELETE server := zen.New() server.Get("/test",handler) server.Post("/test", handler) server.Put("/test",handler) server.Patch("/test", handler) server.Delete("/test",handler) 组线路 server := zen.New() user := server.Group("/user") { user.Get("/test",handler) user.Post("/test", handler) user.Put("/test",handler) user.Patch("/test", handler) user.Delete("/test",handler) } 添加中间件 server := zen.New() server.Filter(func(c *zen.Context) { log.Println("root filter") }) 组过滤器 server := zen.New() user := server.Group("/user") { user.Filter(func(c *zen.Context) { log.Println("user filter") }) } 在路径参数 server := zen.New() server.Get("/user/:uid",func (c *zen.Context) { c.JSON(map[string]string{"uid": c.Param("uid")}) }) if err := server.Run(":8080"); err != nil { log.Println(err) } 解析和验证输入 func handler(c *zen.Context) { type Inputs struct { Name string `form:"name" json:"name"` Age int `form:"age" json:"age"` Mail string `form:"mail" valid:"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" msg:"Illegal email" json:"mail"` } var input Inputs if err := c.ParseValidForm(&input); err != nil { c.JSON(map[string]string{"err": err.Error()}) return } log.Println(input) c.JSON(input) } 处理panic server := zen.New() server.HandlePanic(func(c *zen.Context, err interface{}) { c.RawStr(fmt.Sprint(err)) }) if err := server.Run(":8080"); err != nil { log.Println(err) } 处理 404 server := zen.New() server.HandleNotFound(func(c *zen.Context) { c.WriteStatus(StatusNotFound) c.RawStr(StatusText(StatusNotFound)) }) if err := server.Run(":8080"); err != nil { log.Println(err) }
...全文
29 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧