我有一个带有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,然后使用业务逻辑调用服务以执行所需的操作。
还是将其放置在服务内部更好?将整个请求对象从入口点传递到服务中,然后在服务内部获取所需的数据,对其进行转换,验证(如果数据返回错误,无效)