#基于echo框架的web应用模板,本模板一个echo的实用实例,主要目的是为了提供一个构建代码友好可维护性高的echo应用
- 友好而实用的日志记录方式
- 友好service调用方式
#编译使用
- go mod vendor
- go run entry/main.go
areaMap, err := app.MustGetAreaService().GetAreaMap(areaId)
if err != nil {
return c.BaseController.Fail(ctx, echoapp.Error_ArgumentError, "", err)
}
echoapp_util.ExtractEntry(ctx).Info(renderParams)
jwsMiddleware := echoapp_middlewares.NewJwsMiddlewares(middleware.DefaultSkipper, app.MustGetJwsHelper())
jwsAuth.Use(jwsMiddleware)
jws认证后可以使用 echoapp_util.GetCtxtUserId(ctx)获取用户id,想要获取用户完整信息需要配合user中间件,但是注意user中间件所在的服务需要有访问user数据库的权限,在一些微服务场景下我们往往只关心userId
userMiddleware := echoapp_middlewares.NewUserMiddlewares(middleware.DefaultSkipper, usrSvr)
authgoup.Use(userMiddleware)
func (sCtl *UserController) GetUserInfo(ctx echo.Context) error {
echoapp_util.ExtractEntry(ctx).Info("getUserInfo")
user, err := echoapp_util.GetCtxtUser(ctx)
if err != nil {
return sCtl.Fail(ctx, echoapp.Err_NotFound, "未发现用户", err)
}
return sCtl.Success(ctx, user)
}