最佳实践通过移动应用程序版本获取版本API

最佳实践通过移动应用程序版本获取版本API,api,design-patterns,version-control,version,Api,Design Patterns,Version Control,Version,我用webapi(.NET)为ios和Android编写应用程序,我使用rest概念,API有类似url的版本控制 api/v1/Student、api/v2/Student等,不同版本的移动应用程序将使用不同的api,并且可能移动应用程序可以使用某些版本的api(第一个版本中的一种方法,另一个版本中的第二种方法)。我为从api获取数据编写了类,输入参数为version,接下来我将使用getAll、getById、Delete等方法创建存储库。。。 如何确定存储库中的必要版本?有什么模式吗?AP

我用webapi(.NET)为ios和Android编写应用程序,我使用rest概念,API有类似url的版本控制 api/v1/Student、api/v2/Student等,不同版本的移动应用程序将使用不同的api,并且可能移动应用程序可以使用某些版本的api(第一个版本中的一种方法,另一个版本中的第二种方法)。我为从api获取数据编写了类,输入参数为version,接下来我将使用getAll、getById、Delete等方法创建存储库。。。
如何确定存储库中的必要版本?有什么模式吗?

API的版本控制是一回事,而存储库(或任何其他业务逻辑)是另一回事

如果我理解正确,您需要确保的是API中具有向后兼容性

因此,如果v1向客户机返回结构A1的响应,v2将返回结构A2,那么您希望存储库/业务逻辑返回完整的数据集,并让控制器根据其支持的版本将其格式化为A1或A2

在极少数情况下,v2会破坏v1中的所有内容,并且无法绕过它,您最好在v2中编写一组单独的类,并单独维护v1,直到您切断对它的支持,所有客户端都迁移到v2。这意味着您将有两组存储库,一个在v1的命名空间中,另一个在v2中(或者以任何其他方式将它们分开-不同的类名、不同的解决方案/项目等)