当您将新版本上传到应用引擎时,我们将其称为“10”,您可以使用此网址直接向此版本发送请求:http://10.myapp.appspot.com
我发现它非常有用,我养成了释放指向相应服务器版本的android应用程序的习惯。因此,当我将版本10上传到Play商店时,它指向http://10.myapp.appspot.com,同样适用于版本9:http://9.myapp.appspot.com。
这是正确用法还是此功能?有关App Engine中版本控制的最佳做法是什么?
我这样做是因为我想保持向后兼容性,所以如果我在服务器上进行更改,旧客户端将不会注意到它,因为它们已连接到旧版本。
我理解这是有问题的,因为所有版本共享相同的数据库以及当我为不适用于其他版本的默认版本配置预热时可能出现的问题。 我通过这种方式使用它会犯错吗?
答案 0 :(得分:1)
应用程序版本对于在“实时”部署新版本之前测试新版本非常有用。我不会用它来确保与现有客户端的向后兼容性。此外,每个应用程序只能有有限数量的版本。
每个应用程序最多可以有十个版本;一旦达到该限制,您将需要删除现有版本,然后才能部署新版本。
另一件需要考虑的事情是,某些App Engine服务(例如数据存储区)在特定版本上是独立的,但其他(例如Cron作业)对于具体版本(通常是默认版本)是严格的,除非另有说明。
但是,您可以拥有应用程序公共接口的不同版本(REST / SOAP服务或您使用的任何版本),以便新功能或更改仅适用于相应的客户端。
以下是使用版本的虚拟REST API的示例。
https://myapp.com/api/v1/questions/10/answers?max=10
https://myapp.com/api/v2/questions/10/latest-10-answers