我的项目结构是 Client <=> Web API <=> BL <=> DAL (Repository) <=> DB.
一个 API 会知道很多 BLs 有意义吗?这意味着在一个 API 方法中它将调用 X_BL,而在另一个方法中,在同一个 API 类中它将调用 Y_BL?如果有道理,请举个例子好吗?
或者它应该始终是 1:1 关系,以便每个 API Controller 将调用其 BL,例如:CustomersAPI 将始终调用 CustomersBL,而 ProductsAPI 将始终调用 ProductsBL。
请您参考如下方法:
在我看来,答案取决于,有很多问题需要先回答
- 您制作 API 的目的是什么?
- 您是否必须遵循 API 用户拥有的架构设计模式(例如 MobileApp、WebApp)?
- 或者只是想制作一个只提供数据的 API,就像你说的那样,1:1 关系,所以其他应用程序必须遵循你制作的架构设计模式?
- 您的重点是处理数据,客户端还是服务器端?
- API 及其用户的工作范围有哪些限制?
根据我的经验,如果您想创建一个可扩展的 REST API,您的 Controller 必须能够访问任何 BLL(业务逻辑层)在需要时。 BLL = BL(在你的情况下)
例如:
http://localhost/customers/15
customers Controller 只需要1个BLL(CustomerBLL)就可以找到ID为15的客户并返回结果。就像你说的,1:1 关系。
在另一种情况下,您将需要多个 BLL。
例如:
http://localhost/customers/15/products
客户 Controller 需要另一个 BLL (ProductsBLL) 来查找与 ID 为 15 的客户相关的任何产品,然后返回结果。
