0

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

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

API 将使用 ASP.NET WebApi 构建

谢谢

4

1 回答 1

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

于 2012-06-24T10:32:44.663 回答