首页 > 解决方案 > 我看不到对 Web api 进行版本控制的好处?

问题描述

为什么要对我的 Web api 进行版本控制?我真的不明白为什么我应该这样做。

我读过这篇文章:https ://vladsukhachev.wordpress.com/2016/12/12/web-api-versioning-in-real-world-applications/

在文章中,作者为版本 1 创建了一个名为 GetV1_0 的方法。然后他基本上再次创建了相同的方法,但将该方法重命名为版本 1.1 的 GetV1_1。为什么?我为什么要这样做?为什么不直接更改第一个而不进行任何版本控制?

任何可以获得一些好处的人为什么我应该这样做,而不是在应该添加任何新内容时更新方法?

标签: c#asp.net-web-apisoftware-design

解决方案


您链接到的文章的第一段对此进行了解释:

使用您的 API 的客户希望它不会改变。否则,他们的代码可能会由于更改合同或行为而失败。但是需求会发生变化,我们需要找到一种在不破坏现有客户端的情况下发展 API 的方法。因此,每次发生重大 API 更改时,您都需要发布新版本的 API。这并不意味着您需要永远支持所有版本。但是您需要谨慎地摆脱旧版本的 API,以便客户了解如何迁移到更新版本的 API。

想象一个场景,您编写一个 API 供其他人编写的软件使用。只有在您的 API 的新版本发布后,他们才能开始开发新版本的软件。但他们不希望现有应用程序在适应您的新 API 时出现故障。

我想您可以发布一个其他人可以测试的测试版本,然后仅在每个人都迁移后才发布,但是这种策略不适用于许多用户。

通过对您的 API 调用进行版本控制,这些其他人的现有应用程序可以在他们开发适用于您的 API 的新版本的新版本时继续运行。


推荐阅读