.Net Core 5 Web Api 服务对象共享和引用

Posted

技术标签:

【中文标题】.Net Core 5 Web Api 服务对象共享和引用【英文标题】:.Net Core 5 Web Api services object sharing and refrence 【发布时间】:2021-09-26 21:04:17 【问题描述】: 我在 .net core 5 中开发了 2 个 WebApi,例如 InventoryApi 和 SalesApi。 我在 StockIO 的 InventoryApi 中有一个名为 Good 的对象。 Good 与 SalesApi 中的 Salesinvoices 对象有关系。

我必须引用哪些选项?

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

【问题讨论】:

【参考方案1】:

TL;DR:

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


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

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

共享类,共享类库项目

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

专业的

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

缺点

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

共享类,共享API项目

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

专业的

易于访问 快速发展

缺点

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

共享库 (nuget)

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

专业的

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

缺点

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

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

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

专业的

没有共享依赖组件

缺点

错位的风险

【讨论】:

非常感谢。你建议直接引用共享对象还是从连接的 Api 引用它们 共享库 - 基本上在同一个解决方案中创建一个新的类库项目并引用该项目

以上是关于.Net Core 5 Web Api 服务对象共享和引用的主要内容,如果未能解决你的问题,请参考以下文章

从 ASP.NET MVC 项目调用 .NET CORE 5 Web API 微服务时无法检索 BadRequest 错误

在 Azure 应用服务中发布 ASP.NET Core 5 Web API 应用时出现问题

.NET Core Web API使用依赖注入(DI)进行服务配置一

如何在 Web API Asp.NET Core 5 中持久化常用数据?

处理 ASP.NET Core Web API 对象属性绑定

如何在 ASP.NET Core Web API 中发布对象列表