我的应用程序将从应用程序商店或Play商店更新,但应用程序正在使用的Web服务API不会更新。
因此,情况是客户端处于更新版本(例如2.0)而Web服务API不是(例如1.0)。
在这种情况下,我需要找到一种模式,其中更新版本的客户端仍然可以访问和使用旧版本的Web Service API。
任何人都可以为此提出解决方案。
注意:我的应用程序分别在iOS和Android中构建。
P.S。:我无法强制更新Web服务API。
示例:
我的应用程序的旧版本(1.0)具有输入必需字段的功能,该字段已在后端Web服务(1.0)中验证。
现在,我最新版本的应用程序(2.0)根本不需要显示该字段(使其成为非必需),但我的应用程序(2.0)仍在访问网页服务版本1.0,因此每当我发出请求时,服务器都会回复一条错误消息,指出该字段是必需的,并且不允许我保存数据。
用简单的话说:
我有多次部署服务器代码,我的客户端会访问这些服务器。 服务器代码可以是任何版本(1.0,2.0,3.0),但我的客户端始终是最新发布的版本。 (例如3.0)。 同一客户端仍需要访问运行在1.0,2.0和3.0
的服务器我该如何处理这种情况?
答案 0 :(得分:0)
我需要找到一个模式,其中客户端处于更新版本 仍然可以访问和使用旧版本的API。
如果您的意思是您的应用需要使用' API,或者如果您的意思是您的应用应该能够使用' API然后您需要同时在线提供这两个API。要做到这一点,您有2个主要选择具有唯一的API路径,或者将它们托管在不同的(子)域(下面列出)
不同的网址路径
最简单的答案是在URL本身内部使用您的Web服务API a / v#/。通过这种方式,您可以轻松区分对不同版本API的调用。
所以www.myserver.com/webapi/v1/songs/author/
和www.myserver.com/webapi/v2/author/songs/
例如
不同(子)域
另一种方法是让v1 web API在一个(子)域上运行,并在另一个域上运行v2 ...
www.v1.myserver.com/webapi/songs/author
vs www.v2.myserver.com/webapi/songs/author
或使用myserverv1.com
vs myserver2.com
等。
答案 1 :(得分:0)
如果您的Web API需要'提供该字段,然后您的应用需要提供'那个领域。是否从用户那里获得它。如果用户没有填写/提供该字段,那么您只需要输入您的API调用"有效的内容" (这取决于字段是什么,您的API等)然后从那里开始。