强类型对象与普通 XML 作为来自 REST API 服务的响应?哪个最好

Posted

技术标签:

【中文标题】强类型对象与普通 XML 作为来自 REST API 服务的响应?哪个最好【英文标题】:Strongly typed object vs Plain XML as response from rest API service ? Which one is best 【发布时间】:2012-05-22 23:52:58 【问题描述】:

我们即将启动一个服务项目,它将向不同的客户提供有关我们的域对象的数据。我们将拥有 ASP.NET Web 表单/MVC、Classic ASP、phpandroid App(Java 作为后端代码)的客户端

我们正在进行某种研究,以最终确定要使用的开发策略。我们有编写 WCF 服务的经验。 WCF Rest 是否支持架构?我读到 Rest Architecture 将数据返回为 Plain XML/Json 。不是强类型对象。在编写以前的 WCF 服务并在客户端应用程序中使用它时,我真的很喜欢强类型对象的响应。我想 REST 是不可能的。

我正在研究 ASP.NET Web API(WCF 现在变成了这个)。但这仍处于测试阶段,我的团队还没有准备好使用仍处于测试阶段的东西。

我应该使用什么最好的方法? WCF 服务返回强类型对象或 XML ?两者的优缺点是什么?

【问题讨论】:

【参考方案1】:

什么是强类型对象? :) 它本质上就是它所预期的类型。只有当您有办法控制管道的服务器端和客户端(即两端相同的虚拟机,或者可以编组/解组为相应语言的相同语言或代理/存根)时,您才能执行此操作。

那么,这是什么意思?我建议将 WCF 与 XML/JSON 结合使用,因为这是通过网络进行通信的通用语言。一旦你意识到弱类型的好处,你就会克服没有强类型的问题。如果你真的想要强类型,你可以使用 xsd.exe 或类似的东西来为你的服务生成代理。

话虽如此,您确实应该将努力分为两件事:

使用 WCF 实现域服务来包装您的后端。这些可能只是向有线协议服务公开合同的 .NET 程序集。 使用对最终消费者友好的方式实施有线服务。尝试使这变得微不足道,以便您可以快速且廉价地创建它们。像 vert.x 或 node.js 或 WebAPI..

当然,您可能已经在做这一切,而我可能完全错了。 :)

【讨论】:

以上是关于强类型对象与普通 XML 作为来自 REST API 服务的响应?哪个最好的主要内容,如果未能解决你的问题,请参考以下文章

来自 REST API 调用的 PowerBI XML 数据源有时会返回“表”数据类型

REST API 包装器设计:将动态 json 作为 JSON.NET JObject / JArray 返回

引用类型与垃圾回收

将变体类型作为 REST 中的对象属性是不是合适?

笔记:Jersey REST 传输格式

强类型数据集作为水晶报表的数据源