.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 中持久化常用数据?