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

How to handle different versions of my REST services in Smart Devices?

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

GeneXus 是否处理多个 API 版本?我的意思是,如何防止 1.0 版本的应用在我们启动 1.1 版本时崩溃?

发布应用程序的新版本时有几个注意事项。

如果您需要两个版本同时可用,那么最好的选择是将新版本的服务发布到另一个 URL。比方说,您在 https://example.com/myapp10, then create a new "virtual directory" https://example.com/myapp11 有 1.0 版的服务,然后将新版本指向那里。

如果数据库中也有变化,则需要特别考虑。如果您只有新表 and/or 属性(并且新属性可以为空),那么您无需执行任何其他操作。

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

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

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

并且 this article 在知识库中解释了如何操作。

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

示例:

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

您必须复制"myservice",但是,知识库的其他对象不会被复制。

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

我使用这种方式为一些不是使用 GeneXus 制作但使用 GeneXus REST 网络服务的本机应用程序提供服务。

希望对你有用:)