版本控制服务器响应

时间:2014-12-23 17:21:16

标签: android json protocol-buffers

我正试着解决这个版本问题,我想请你帮忙:

假设这些请求是以JSON:

进行的
  • 假设您的服务器对于endpoint / X,返回包含字段A和B
  • 的消息
  • 在您的Android客户端应用版本1上,当您收到来自/ X的回复时,您希望获得字段A和B.

顺便说一句,您决定在Android客户端应用版本2上,您将不再需要字段B

由于某些用户仍然存在Android客户端应用版本1,因此您无法从响应中获取字段B,这将使具有旧字段的较新Android客户端的响应变得混乱


对这些回复进行版本化的好方法是什么?

  • 在服务器中处理版本控制,并根据android客户端版本(或根据客户端请求的架构的请求版本)发送正确的响应。
  • protobuf版本控制在这种情况下有用吗?因为似乎我们总是必须为较新的回复发送旧版B参数
  • 还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

  

处理服务器中的版本控制,并发送正确的响应   根据android客户端版本(或根据请求   客户端请求的模式版本

我会在服务器上处理版本控制。您不知道未来版本将引入哪些其他更改。

  

protobuf版本控制在这种情况下有用吗?

好吧,有点儿。如果客户端知道参数A而不是B,他将能够毫无问题地读取A.知道两者的客户将能够同时读取这两者。在任何一种情况下,客户端的行为都是正确的,唯一的问题是冗余参数(这可能会影响性能,但不会影响正确性)。

  

还有其他建议吗?

让服务器将版本#1与版本#2区分开并发送适当的参数。您甚至可以为每个API版本设置单独的API。因此,V1客户端将连接到www.myapi.com/api/apiv1,而V2将连接到www.myapi.com/api/apiv2或类似的东西。