Web API-如何实现图层?

时间:2014-06-20 09:11:18

标签: c# .net asp.net-mvc design-patterns asp.net-web-api

这是customer中的简单Web API控制器。

public class CustomerController : ApiController
{
    BusinessLayer.ICustomerRepositary CustomerRepositary;

    public CustomerDTO Get()
    {
        BusinessLayer.Customer customer = CustomerRepositary.GetCustomers();

        // Map customer to customerDTO

        return customerDTO;
    }
}

我的项目组织:

BusinessLayer - >模型(Customer.cs),CustomerRepositary,ICustomerRepositary

APILayer - > DTO(CustomerDTO.cs),CustomerController

enter image description here

我的问题是:

  1. tightly coupling the business layer with the API层是个好主意吗?

  2. 这里有没有其他模式可以实现?

  3. 当我实现单元测试时,单元测试包含业务层的引用。这个设计是正确的吗?

1 个答案:

答案 0 :(得分:1)

与软件中的大部分内容一样,它取决于您要实现的目标。

但是,通常,在较高层创建的类可以依赖于较低层的类。但不是相反。

因此,我没有发现您的代码移动方向有任何问题。

在为CustomerController编写测试时,您将引用BusinessLayer类。但是,在为BusinessLayer类编写测试时,期望引用WebAPIApplication类。