我正在为系统设计一个公共API。我怀疑我应该在哪里放置计算或域逻辑,它应该驻留在API还是将使用它的客户端上?
假设我们有一个银行系统,我应该在哪里计算现金金额的逻辑?消费者应该只调用API的Deposit方法并让API处理 计算
将使用ASP.NET WebApi构建API
由于
答案 0 :(得分:1)
不确定我是否完全理解您的问题,但业务逻辑应该由API处理(我想知道反过来会如何)。
从实施的角度来看,您应该将它们作为服务来处理,以便分离系统,以便您可以轻松地对其进行单元测试。例如,下面的是CalcService
:
public interface ICalcService {
double Calc(double left, double right);
}
public class CalcService : ICalcService {
public double Calc(double left, double right) {
return (left + right);
}
}
然后,应将此服务注入您的控制器,如下所示:
public DepositController : ApiController {
private readonly ICalcService _calcService;
public DepositController(ICalcService calcService) {
_calcService = calcService;
}
//now, you can use the _calcService inside your action methods
}
要使其正常工作,您应该通过IoC容器注册您的服务。