.Net Core 5 Web Api 服务对象分享与参考

.Net Core 5 Web Api services object sharing and refrence


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

我必须参考哪些选项?

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

长话短说:

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


我会给你一些正反两方面的选择。还有其他方法,但我认为这些是最常见的。

  1. 共享class、共享class图书馆项目
  2. 共享class,共享API项目
  3. 共享库 (nuget)
  4. 松散耦合或重新定义(nu重用)

共享class、共享class图书馆项目

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

专业人士

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

缺点

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

共享class,共享API项目

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

专业人士

  • 易于访问
  • 发展迅速

缺点

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

共享库 (nuget)

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

专业人士

  • 如果需要 package/release 管理(由于许多依赖项)
  • ,则很好

缺点

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

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

如果共享class只包含数据并用作数据传输对象(DTO),您可以在两个项目中单独定义它。

专业人士

  • 没有共享依赖组件

缺点

  • 错位的风险