关于中间件handler业务逻辑
来源:10-15 中间件main调整 及 handler 开发(上)

慕瓜9063200
2023-03-30
老师你好,
func (e *MiddlewareHandler) UpdateMiddleware(ctx context.Context, req *middleware.MiddlewareInfo, rsp *middleware.Response) error {
log.Info("Received *middleware.UpdateMiddleware request")
if err:= e.MiddlewareDataService.UpdateToK8s(req);err!=nil{
common.Error(err)
rsp.Msg = err.Error()
return err
}
//查询中间件相关的信息
middleModle,err:=e.MiddlewareDataService.FindMiddlewareByID(req.Id)
if err != nil {
common.Error(err)
rsp.Msg = err.Error()
return err
}
//更新model数据
if err := common.SwapTo(req,middleModle);err != nil{
common.Error(err)
rsp.Msg = err.Error()
return err
}
//更新model
if err:= e.MiddlewareDataService.UpdateMiddleware(middleModle);err!=nil{
common.Error(err)
rsp.Msg = err.Error()
return err
}
return nil
}
课程中代码逻辑是这样的
1.先做一次查询
2.把请求中的数据序列化到查询出来的结果中
3.最后调用dataservice的数据库更新操作
这里更新操作还需要调用一次查询操作
有个问题,为什么不直接这么操作呢,这样省去了调用查询操作的过程
1.构造一个model.Middleware{}
2.将请求序列化到这个新构造的结构体中
3.最后调用dataservice的数据库更新操作
写回答
1回答
-
Cap
2023-03-31
查询是为了查到这个中间件的原始信息和id,然后根据这些信息变更在更新。
00
相似问题