Rest 如何通过最新的服务器部署支持多个移动应用程序版本?
我正试图找出一个方案,但我在网上找不到任何相关信息 假设我正在部署一个带有后端(v1.0.0)的Android应用程序(v1.0.0)。 在某个时候,我会做一些更改,将应用程序更新到v1.0.1,并将后端更新到v1.0.1,它们将完美工作。 但是我怎样才能支持应用程序的早期版本(可能新的服务器版本为一个特定请求提供了另一种响应格式) 我曾想过为服务器的每个版本进行单独的部署,但对于许多更新来说,这将意味着巨大的资源影响。Rest 如何通过最新的服务器部署支持多个移动应用程序版本?,rest,mobile,deployment,server,architecture,Rest,Mobile,Deployment,Server,Architecture,我正试图找出一个方案,但我在网上找不到任何相关信息 假设我正在部署一个带有后端(v1.0.0)的Android应用程序(v1.0.0)。 在某个时候,我会做一些更改,将应用程序更新到v1.0.1,并将后端更新到v1.0.1,它们将完美工作。 但是我怎样才能支持应用程序的早期版本(可能新的服务器版本为一个特定请求提供了另一种响应格式) 我曾想过为服务器的每个版本进行单独的部署,但对于许多更新来说,这将意味着巨大的资源影响。 此外,在我看来,强制用户更新似乎不是一个好的选择。在服务器上为每个不同版本
此外,在我看来,强制用户更新似乎不是一个好的选择。在服务器上为每个不同版本的应用程序使用切换案例。基本上,你可以通过多种方式来实现。这取决于你的需求,但通常情况下,现实是以下几点的混合 根据经验,考虑将保持兼容的数据模型。如果合同无法维持或需要进行重大更改,请引入新版本的API。如果无法支持旧客户端,请强制更新。您还可以就支持每个早期版本的时间达成一致,然后强制更新,这将使您的生活比维护几十个版本的API更容易、更简单 向后兼容的数据模型
{
"data": [ arbitrary data model],
"protocolVersion": "v1"
}
根据协议版本,您可以决定如何在服务器端处理数据。您不需要记住客户端版本,只需记住协议。因为它可能是您发布的:1.0.0、1.0.1、1.1.0,并且您只在1.2.0中更改协议
但我认为问题在于,随着数据的变化,服务器端处理的行为也会随之变化
版本化API