API上的域逻辑

时间:2012-06-24 07:04:11

标签: asp.net-web-api

我正在为系统设计一个公共API。我怀疑我应该在哪里放置计算或域逻辑,它应该驻留在API还是将使用它的客户端上?

假设我们有一个银行系统,我应该在哪里计算现金金额的逻辑?消费者应该只调用API的Deposit方法并让API处理 计算

将使用ASP.NET WebApi构建API

由于

1 个答案:

答案 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容器注册您的服务。