我的项目结构是客户端<=> Web API <=> BL <=> DAL(存储库)<=> DB。
一个API会知道许多BL有意义吗?意味着在一个API方法中它将调用X_BL,而在另一个方法中,将在同一API类中调用Y_BL?如果可以的话,请您举个例子吗?
还是总是应该为1:1关系,以便每个API控制器都将调用其BL,例如:CustomersAPI将始终调用CustomerBL,ProductsAPI将始终调用ProductsBL。
答案 0 :(得分:2)
我认为答案是取决于,有很多问题需要首先回答
以我的经验,如果您想制作一个可扩展的REST API ,则您的控制器必须能够访问任何BLL (业务逻辑层)在需要时。 BLL = BL(在您的情况下)
例如:
http://localhost/customers/15
客户控制器仅需要1个BLL(CustomerBLL)即可找到ID为15的客户,然后返回结果。就像您所说的1:1关系。
在另一种情况下,您需要超过1个BLL。
例如:
http://localhost/customers/15/products
客户控制者需要另一个BLL(ProductsBLL)来查找与ID为15的客户相关的任何产品,然后返回结果。
答案 1 :(得分:1)
这绝对有道理,API通常需要多个业务逻辑来解决特定问题。例如,您的CustomersAPI可以与CustomersBL对话,但也可以与UsersBL对话以获取授权上下文(可以返回客户),或者在执行操作时与CRM BL对话。