使用 API 管理和 ASP.NET Core 进行版本控制

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

这两者有什么区别?我知道如何在 ASP.NET Core 中进行版本控制,最近我在 API 管理中发现了该版本,并想知道如何实现它或选择其中之一。

我搜索 API 管理文档,似乎它与 ASP.NET Core 具有相同的实现、版本控制方案。

azure-api-management api-versioning
1个回答
0
投票

您完全正确,您可以使用 Azure API 管理 (APIM) 和直接在应用程序中使用 ASP.NET core 来版本化 API。 有时,对两者进行版本调整甚至是有意义的。 我想说,如果您认为需要版本控制但不确定从哪里开始,请使用 ASP.NET Core 中的版本控制。 如果您后来发现您的用例实际上要复杂得多,您可能还想使用 API 管理。

在 ASP.NET Core 应用程序中对 API 进行版本控制

适合当您正在构建一个由您控制且将由其他服务调用的简单 API 应用程序时。假设您正在为您的工作场所构建此应用程序,另一个团队将使用您的 API,但它不会在您的工作场所组织之外使用。那么应用程序代码中的版本控制就有意义了,因为它允许您改进 API,而不会为消费者破坏 API,并且依赖于另一个会增加复杂性、管理开销和潜在成本(取决于 SKU)的云服务。 作为示例,您的网址可能看起来像这样: myapiapp.azurewebsites.net/v1/domain myapiapp.azurewebsites.net/v2/domain myapiapp.azurewebsites.net/v3/domain

使用 API 管理和 ASP.NET Core 对 API 进行版本控制

API 管理是一项功能丰富的服务,不仅仅可以对 API 进行版本控制。 现在让我们添加到上面的示例中,假设您有一个外部组织想要使用您的 API。您的内部 API 有 3 个版本,但您只希望外部使用者能够访问您的服务的版本 3。 API 管理允许您公开 API 的端点和版本的子集。轻松限制外部访问。在此示例中,我们现在实际上拥有“内部版本”和“外部版本”,因为服务和 APIM 版本都是 API。 如果您计划将许多 API 公开给外部客户,API 管理也是一个不错的选择,因为它提供了统一的入口点。 不要向客户公开每个 API 的单独 URL,如下所示:

myapiapp.azurewebsites.net/v3/domain otherteamapiapp.azurewebsites.net/v1/someotherdomain

它可能看起来像这样通过 APIM 公开:

api.kan-company/v1/domain api.kan-company/v1/someotherdomain

何时仅通过 API 管理进行版本控制

我想说,就像 @Dai 一样,如果您有一个无法更改的旧遗留应用程序或者更改的风险太高,您将不希望通过 API 管理进行版本控制。 仅通过 API 管理进行版本控制的另一种情况是,如果您有许多不需要更改的 API 服务,而您希望将这些服务组合在一起或通过统一端点进行调用。

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