.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 对象有关系。
我必须参考哪些选项?
- 使用共享 class
- 在SalesApi项目中引用InventoryApi并使用Inventory中的Good Object
- 还有其他解决方案吗?
长话短说:
由于您已将 API 组合到一个解决方案中,因此共享 class 库中的共享 class 很好。
我会给你一些正反两方面的选择。还有其他方法,但我认为这些是最常见的。
- 共享class、共享class图书馆项目
- 共享class,共享API项目
- 共享库 (nuget)
- 松散耦合或重新定义(nu重用)
共享class、共享class图书馆项目
这是一个 class 可通过代码从 2 API 项目的解决方案中访问。
专业人士
- 易于访问
- 发展迅速
- 所有共享组件的专用项目
缺点
- 纠缠API的
- 复杂度更高(单个class影响2个系统)
共享class,共享API项目
与上面类似,但您不是共享共享组件,而是在 shing 完整的 API 项目。
专业人士
- 易于访问
- 发展迅速
缺点
- 纠缠API的
- 复杂度更高(单个class影响2个系统)
- 公开完整的API项目
共享库 (nuget)
类似于共享库,但在这种情况下,您使用像 nuget 这样的包管理器来管理包的分发和版本。如果包需要与多个组件共享,这通常会被使用。
专业人士
- 如果需要 package/release 管理(由于许多依赖项)
,则很好
缺点
- 更多设置工作
- 应用更改的更多工作
松散耦合或重新定义(nu重用)
如果共享class只包含数据并用作数据传输对象(DTO),您可以在两个项目中单独定义它。
专业人士
- 没有共享依赖组件
缺点
- 错位的风险
我在 .net core 5 中开发了 2 个 WebApi,例如 InventoryApi 和 SalesApi。
我在 InventoryApi 中有一个名为 Good 的对象,它在 StockIO 中使用。
Good 与 SalesApi 中的 Salesinvoices 对象有关系。
我必须参考哪些选项?
- 使用共享 class
- 在SalesApi项目中引用InventoryApi并使用Inventory中的Good Object
- 还有其他解决方案吗?
长话短说:
由于您已将 API 组合到一个解决方案中,因此共享 class 库中的共享 class 很好。
我会给你一些正反两方面的选择。还有其他方法,但我认为这些是最常见的。
- 共享class、共享class图书馆项目
- 共享class,共享API项目
- 共享库 (nuget)
- 松散耦合或重新定义(nu重用)
共享class、共享class图书馆项目
这是一个 class 可通过代码从 2 API 项目的解决方案中访问。
专业人士
- 易于访问
- 发展迅速
- 所有共享组件的专用项目
缺点
- 纠缠API的
- 复杂度更高(单个class影响2个系统)
共享class,共享API项目
与上面类似,但您不是共享共享组件,而是在 shing 完整的 API 项目。
专业人士
- 易于访问
- 发展迅速
缺点
- 纠缠API的
- 复杂度更高(单个class影响2个系统)
- 公开完整的API项目
共享库 (nuget)
类似于共享库,但在这种情况下,您使用像 nuget 这样的包管理器来管理包的分发和版本。如果包需要与多个组件共享,这通常会被使用。
专业人士
- 如果需要 package/release 管理(由于许多依赖项) ,则很好
缺点
- 更多设置工作
- 应用更改的更多工作
松散耦合或重新定义(nu重用)
如果共享class只包含数据并用作数据传输对象(DTO),您可以在两个项目中单独定义它。
专业人士
- 没有共享依赖组件
缺点
- 错位的风险