【问题标题】:.Net Core 5 Web Api services object sharing and refrence.Net Core 5 Web Api 服务对象共享和引用
【发布时间】:2021-09-26 21:04:17
【问题描述】:

我在 .net core 5 中开发了 2 个 WebApi,例如 InventoryApi 和 SalesApi。
我在 StockIO 的 InventoryApi 中有一个名为 Good 的对象。
Good 与 SalesApi 中的 Salesinvoices 对象有关系。

我必须引用哪些选项?

  1. 使用共享类
  2. 在 SalesApi 项目中引用 InventoryApi 并使用来自 Inventory 的 Good Object
  3. 还有其他解决方案吗?

【问题讨论】:

    标签: c# rest web-services .net-core asp.net-core-webapi


    【解决方案1】:

    TL;DR:

    由于您已将 API 组合在一个解决方案中,因此共享类库中的共享类很好。


    我会为您提供一些赞成和反对的选项。还有其他方法,但我认为这些是最常见的。

    1. 共享类,共享类库项目
    2. 共享类,共享 API 项目
    3. 共享库 (nuget)
    4. 松散耦合或重新定义(重用)

    共享类,共享类库项目

    这是一个可通过 2 个 API 项目的解决方案中的代码访问的类。

    专业的

    • 易于访问
    • 快速发展
    • 所有共享组件的专用项目

    缺点

    • 纠缠 API
    • 更高的复杂性(单个类影响 2 个系统)

    共享类,共享API项目

    与上述类似,但不是共享共享组件,而是共享完整的 API 项目。

    专业的

    • 易于访问
    • 快速发展

    缺点

    • 纠缠 API
    • 更高的复杂性(单个类影响 2 个系统)
    • 公开完整的 API 项目

    共享库 (nuget)

    类似于共享库,但在这种情况下,您使用像 nuget 这样的包管理器来管理包的分发和版本。如果包需要与多个组件共享,这通常使用。

    专业的

    • 如果需要包/发布管理(由于许多依赖项)很好

    缺点

    • 更多设置工作
    • 应用更改的更多工作

    松耦合或重新定义(nu重用)

    如果共享类只包含数据并用作数据传输对象(DTO),则可以在两个项目中分别定义。

    专业的

    • 没有共享依赖组件

    缺点

    • 错位的风险

    【讨论】:

    • 非常感谢。你建议直接引用共享对象还是从连接的 Api 引用它们
    • 共享库 - 基本上在同一个解决方案中创建一个新的类库项目并引用该项目
    猜你喜欢
    • 2017-08-20
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    相关资源
    最近更新 更多