chassis
1.介绍
Golang相关服务的基础底架
2.web
基于Gin框架封装了路由处理器相关的中间件,只需提供一个包含请求结构体和响应结构体的函数,该组件实现自动解析请求体和响应。
示例:
func routes(engine *gin.Engine) {
middleware.Route(engine, http.MethodPost,"/sayHello", handlers.SayHello)
}
func SayHello(ctx context.Context, req *HelloReq, resp *HelloResp) *http_error.HttpError {
//fmt.Printf("%+v", req)
resp.Name = "respName"
resp.Age = 999
return nil
}
3.logger
添加基于第三方logrus包封装的logger包,包含日志轮转分割的功能和显示源文件名、行号以及function名
示例:
func main() {
writer, err := logger.NewRotateWriter("./web", time.Second*3, time.Second*2)
if err != nil {
fmt.Println(err)
return
}
logger.SetOutput(writer)
for i:=0;i<12;i++{
logger.Infof("hello, %s", "hezebin")
time.Sleep(time.Second)
}
}
上述示例创建了两个日志文件 :
- web.20201213163712.log
- web.20201213163712.log
并且输出内容如下 :
{"file":"main.go:34","func":"main","level":"info","msg":"hello, hezebin","time":"2020-12-13 16:35:56"}
4.error
目前只包含了与web中handler相适应和匹配的HttpError