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

时间:2014-05-29 05:55:03

标签: api design-patterns version-control version

我使用WEB API(.NET)为ios和Android编写应用程序,我使用rest概念,API通过url进行版本控制 api / v1 /学生,api / v2 /学生等...,不同版本的移动应用程序将使用不同的api,可能移动应用程序可以使用某些版本的api(一种方法来自第一版,第二种来自其他版本)。我编写了从api获取数据的类,输入参数版本,接下来我将使用getAll,getById,Delete等方法创建存储库... 我如何确定存储库中的必要版本?它有任何模式吗?

1 个答案:

答案 0 :(得分:0)

您的API的版本控制是一回事,以及存储库(或任何其他业务逻辑)的其他方式。

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

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

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