build立一个Web服务以供多个平台使用 – 我应该使用什么格式?

我们希望创build一个Web服务,为单个数据存储上的无状态数据事务提供function。 该服务将被运行多个潜在环境的应用程序消耗 – 至lesswindows .net,php和java,但可能更多。

用来传递数据的最佳格式是什么? “最好的”我会认为是在消费和强types的内容之间的甜蜜点的格式。 在一端,SOAP告诉你一切你需要知道的服务,但需要在客户端进行大量的处理来parsing。 另一方面,JSON的极简主义格式和易于parsing,但显然客户端需要有一个很好的想法,应该期待什么样的数据。

这些解决scheme之一会比其他解决scheme更理想吗? 还有另一种格式要考虑吗?

作为后续,你可以推荐什么框架来实现服务器端的格式? 我们的服务器操作系统是linux,所以php或java将是首选的解决scheme,但也可以考虑像node.js这样的替代平台。 像.NET中的WCF是很理想的,因为你可以写一次业务逻辑,让表示框架同时以多种格式提供。

正如@ WhiteFang34推荐的那样,REST对你来说是一个非常容易理解的协议。 尽pipe这不是一个标准,但它在大多数现代编程语言中被广泛使用和logging。

REST仅仅定义了每个HTTP方法应该做什么,但是你仍然需要决定使用哪种格式。 JSON和XML是最受欢迎的,但从我的经验来看, JSON在大多数情况下使用起来不那么麻烦。

如果您使用WCF REST 4.0模板,则可以在同一服务上获得REST和SOAP端点。 它很容易就像馅饼。 我认为RESTful是大部分事情的最佳方式。

关于REST的好处是容易使用。 消耗可能会多一点,但它工作得很干净。 SOAP很难被使用,但是一旦你把它连接起来,大多数框架都可以很好地工作。 我自己,我从来没有在许多平台上使用SOAP服务的运气。

你应该考虑使用REST 。 这是stream行的Web服务。 我build议阅读REST的简要介绍,介绍REST的应用程序到应用程序通信。 还有REST风格的Web服务:基础知识 。 Java有很多REST解决scheme可供select:

  1. Apache CXF
  2. 新泽西
  3. 高枕无忧
  4. 的Restlet
  5. 春季 ( 文档 )

还有JAX-RS API,其中大部分都遵守(除了Spring之外的所有这些)。