Web API中转换器的职责范围

问题描述

我正在使用MediatR编写Web API。我发现自己需要从处理程序中提取方法或实现转换器并在其中移动代码。我要移动的代码使用其他几个中间请求将结果从一个请求准确转换为我的输出。看起来像这样(简化。那里有200行以上的代码):

var errors = new List<Fails>();
var response = await this.client.GetResponse();
errors.AddRange(Validate(response.Data));

var clientdatafield = new Clientdatafield();
foreach (var dataSample in response.Data)
{
    var processedSample = await this.processingClient.Process(dataSample);

    if (processedSample.Field1 is null) 
    {
        errors.Add(new СonvertionFail());
    }
    else
    {        
        clientdatafield.NullableField1 = processedSample.Field1;
        clientdatafield.NullableField2 = processedSample.Field3;
        clientdatafield.Field3 = processedSample.Field4 ?? defaultField3;
    }

    clientdatafield.Field4 = DoWork(processedSample.Field6,processedSample.Field7);
}
clientdatafield.Errors = errors;

return new ClientData()
{
    Field1 = clientdatafield;
    Field2 = response.OtherData;
}

所以问题是-将这段代码放在转换器中并像这样调用它是否合适:

return DataConverter.ToClient(response);

困扰我的是-对于转换器来说,这段代码似乎太复杂了,但是我不想让处理程序肿。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)