关于中间件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,然后根据这些信息变更在更新。

0
0

Go 开发者的涨薪通道,自主开发 PaaS 平台核心功能

云原生专家带来稀缺的 PaaS 平台实战,带你直击核心业务+技术

400 学习 · 169 问题

查看课程