是服务还是入口点,谁应该将请求数据转换为域模型

时间:2019-02-23 15:59:27

标签: go protocol-buffers grpc

我有一个带有go-kit和协议缓冲区的简单微服务构建。而且我有一个问题,我应该在哪里将请求转换为类似业务的数据。

例如,我关注protobuf

import "google/protobuf/empty.proto";

service Location {
  rpc DeleteLocation(DeleteLocationRequest) returns (google.protobuf.Empty) {};
}

message DeleteLocationRequest {
  string locationUID = 1;
}

请求具有要删除的uid作为字符串;但是,我想使用我的自定义结构

type LocationUID struct {
    uuid.UUID
}

所以,我想知道将传入的字符串转换为域对象的更好之处。

我应该在入口点中完成吗?从需求中获取数据,将其转换为LocationUID,然后使用业务逻辑调用服务以执行所需的操作。

还是将其放置在服务内部更好?将整个请求对象从入口点传递到服务中,然后在服务内部获取所需的数据,对其进行转换,验证(如果数据返回错误,无效)

0 个答案:

没有答案