我正在设计一个将在 Microsoft Windows Azure 下在线运行的系统。一个组件是基于 REST 的 Web 服务,它实际上是一个包装器(使用代理模式),它调用业务合作伙伴的 REST Web 服务,这与 BLOB 存储有关(注意:我们没有使用 azure 存储)。大部分功能将接受请求,调用我们的合作伙伴 Web 服务,接收请求,然后将其传递回客户端。
这样做的原因有很多,但其中一个重要的原因是我们将支持三个客户端:我们的桌面应用程序(win 和 mac)、移动应用程序 (iOS) 和 Web 前端。拥有一个 API,然后我们将其发送给我们的合作伙伴,以在合作伙伴发生变化时保护我们。
我希望我们的服务支持数据传输格式的 JSON 和 XML、Web 的 JSON 以及桌面和移动设备的可能 XML(我们已经在这些产品中提供了 XML 解析器)。我们的合作伙伴也支持这两种格式。
我计划将 ASP.NET MVC 4 与 Web API 一起使用。当我设计这个时,我关心的是 C# 的静态类型检查。如果合作伙伴从数据中添加或删除元素怎么办?我们可能可以为此进行防御性编码,但我仍然感到有些担忧。此外,我们必须进行大量繁琐的编码,设置我们的 API,然后转身调用我们合作伙伴的 API。不过,它可能没有太多选择。但是,在我的脑海里,我想知道是否更动态的语言会是一个更好的选择。
我想联系一下,看看以前是否有人必须这样做,他们曾经使用过哪些技术解决方案(我不喜欢这个,现在 Azure 可以托管其他技术),以及是否有人做过类似的事情可以指出出现的任何问题。谢谢!
研究这个问题似乎只能找到专注于通过代理服务器连接 SOAP Web 服务的解决方案,而不是我在这里指的。