【问题标题】:WEB API & BL relationsWEB API & BL 关系
【发布时间】:2019-05-15 20:21:45
【问题描述】:

我的项目结构是 Client Web API BL DAL (Repository) DB。

一个 API 可以识别多个 BL 是否有意义?这意味着在一个 API 方法中它会调用 X_BL,而在另一种方法中,它会在同一个 API 类中调用 Y_BL?如果有道理,可以举个例子吗?

还是总是应该是 1:1 的关系,这样每个 API 控制器都会调用其 BL,例如:CustomersAPI 将始终调用 CustomersBL,ProductsAPI 将始终调用 ProductsBL。

【问题讨论】:

    标签: c# rest asp.net-web-api architecture


    【解决方案1】:

    这绝对是有道理的,API 通常需要多个业务逻辑来解决特定问题。例如,您的 CustomersAPI 可能与 CustomersBL 对话,但也与 UsersBL 对话以获取授权上下文(可以返回哪些客户),或在执行操作时与 CRM BL 对话。

    【讨论】:

      【解决方案2】:

      在我看来答案是取决于,有很多问题需要先回答

      1. 您制作 API 的目的是什么?
      2. 您是否必须遵循 API 用户拥有的架构设计模式(例如 MobileApp、WebApp)?
      3. 或者只是想像你说的那样做一个只提供数据的 API,1:1 关系,所以其他应用程序必须遵循你做的架构设计模式?
      4. 您在哪里专注于处理数据,客户端还是服务器端?
      5. API 及其用户的工作范围有哪些限制?

      根据我的经验,如果您想制作一个可扩展的 REST API,您的控制器必须能够访问任何 BLL(业务逻辑层)在需要时。 BLL = BL(在你的情况下)

      例如:

      http://localhost/customers/15
      

      customers 控制器只需要 1 个 BLL (CustomerBLL) 即可找到 ID 为 15 的客户,然后返回结果。就像你说的,1:1 的关系。

      在另一种情况下,您将需要超过 1 个 BLL。

      例如:

      http://localhost/customers/15/products
      

      客户控制器需要另一个 BLL (ProductsBLL) 来查找与 ID 为 15 的客户相关的任何产品,然后返回结果。

      【讨论】:

        猜你喜欢
        • 2018-05-20
        • 1970-01-01
        • 2019-02-08
        • 2014-03-07
        • 1970-01-01
        • 2020-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多