我使用WEB API (.NET)为ios和Android编写应用程序,我使用rest概念,API通过url进行版本控制,如api/v1/Student,api/v2/Student等。,不同版本的移动应用程序将使用不同的api,并且可能移动应用程序可以使用某些版本的api (第一个版本中的一个方法,其他版本中的第二个方法)。我写了一个用于从api获取数据的类,带有输入参数版本,接下来我将使用getAll,getById,Delete等方法创建存储库。如何在存储库中确定所需的版本?它有什么模式吗?
发布于 2014-05-29 20:46:59
API的版本控制是一回事,存储库(或任何其他业务逻辑)如何是另一回事。
如果我理解正确的话,您需要确保您的API具有向后兼容性。
因此,如果v1向客户机返回structure A1的响应,而v2将返回structure A2,您将希望存储库/业务逻辑返回完整的数据集,并让控制器根据其支持的版本将其格式化为A1或A2。
在极少数情况下,v2破坏了v1中的所有东西,并且没有办法避免这种情况,您最好用v2编写一组单独的类,并单独维护v1,直到您切断对它的支持,所有客户端都迁移到v2为止。这意味着您将有两组存储库,一组在v1的名称空间中,另一组在v2中(或者以任何其他方式分隔它们-不同的类名,不同的解决方案/项目等)。
https://stackoverflow.com/questions/23926616
复制相似问题