.Net Web 应用程序与不同的 api 客户端

问题描述 投票:0回答:1

我有一个 Blazor 项目,我需要使用多个 REST API。所有这些 API 都需要不同的配置。例如:对于其中一个 API,我必须使用

ServicePointManager.ServerCertificateValidationCallback
绕过证书。对于另一个 API,我必须发送带有 bodypayload 的 GET 请求(这不是语义的)。对于另一个 API,我需要 JWT...等等。 关键是我有不同的 HttpClient,它们需要不同的配置。

所以问题是你如何处理?您在 .NET 中拥有所有这些令人惊奇的东西,例如依赖注入、单例、瞬态、IHttpClientFactory,并且您可以在startup.cs或ctor中或任何其他位置配置您的API客户端。那么这里正确的方法是什么?

我有一个强烈的愿望,像策略设计模式之类的东西在这种情况下会很有用

.net rest design-patterns blazor
1个回答
0
投票

每个人最不喜欢的答案 - 这取决于。

您最终希望如何与 API 交互?您是否想要每个 API 都有一个以标准化方式进行交互的接口?或者您想要一个大的界面?如果是前者,请考虑使用适配器模式。如果是后者,外观模式可能位于适配器模式之上。无论哪种方式,听起来您正在使用的每个 API 都足够不同,您需要相对较高的抽象级别,以便标准化您与它们的交互方式。

就底层的情况而言,有很多方法可以处理它。策略、委托、命令、构建器、简单组合和/或继承,还有更多我没有想到的。这实际上取决于您的目标、API 之间的差异程度、您打算添加多少 API 等等。实现同一目标的方法有很多种,而实现这一目标的方式在很大程度上取决于您的具体环境。

© www.soinside.com 2019 - 2024. All rights reserved.