如何在智能设备中处理不同版本的REST服务?

时间:2015-02-27 17:05:37

标签: genexus genexus-sd

我们在Apple AppStore和Google Play商店中推出了一个应用程序,现在我们需要启动更新。但此更新将更改服务器端代码(即API)。

GeneXus是否处理多个API版本?我的意思是,当我们启动1.1版时,如何防止1.0版本中的应用程序中断?

3 个答案:

答案 0 :(得分:2)

发布新版应用程序时需要考虑几个因素。

如果您需要同时提供这两个版本,那么最好的选择是将新版本的服务发布到另一个URL。比如说,你在https://example.com/myapp10有1.0版本的服务,然后创建一个新的"虚拟目录" https://example.com/myapp11并将新版本指向那里。

如果数据库中也有变化,则需要特别考虑。如果您只有新的表和/或属性(并且新属性可以为空),那么您不需要做任何其他事情。

但是,如果您删除或更改现有属性,那么" old"服务可能无法与新的数据库架构一起使用。在这种情况下,您还需要保留数据库的两个版本,并考虑使某些复制机制保持同步。

您可能会发现this article有趣,关于Pesobook应用程序的部署过程(仅限西班牙文)。

答案 1 :(得分:0)

Here您将找到有关使用Genexus对SD应用程序进行版本控制的更多详细信息。

this article解释了如何在知识库中进行此操作。

答案 2 :(得分:0)

您还可以创建模块以管理您的服务版本。您可以将新的(或更新的 - 通过另存为)服务移动到新模块,而不是使用所有对象创建新的虚拟目录。

示例:

webapp/wsv1/rest/myservice
webapp/wsv2/rest/myservice
webapp/wsv3/rest/myservice

您必须复制“myservice”,但KB的其他对象不会重复。

然后您的应用将根据需要使用“myservice”版本。

我使用这种方式来提供一些不是用GeneXus制作的本机应用程序,但它们使用GeneXus REST Web服务。

希望它有用:)