构建一个由多个平台使用的Web服务 - 我应该使用哪种格式?

时间:2011-04-19 03:36:45

标签: java php .net web-services node.js

我们希望创建一个Web服务,为单个数据存储上的无状态数据事务提供功能。该服务将由运行多个潜在环境的应用程序使用 - 至少是windows .net,php和java,但可能更多。

用于来回传递数据的最佳格式是什么? “最好的”我会认为这是消费易用性和强类型内容之间最佳点的格式。在一端,SOAP告诉您需要了解的有关服务的所有信息,但需要在客户端进行大量处理才能解析。另一方面,JSON因其极简主义格式而且易于解析,但显然客户需要非常清楚它应该期待什么样的数据。

这些解决方案中的一个会比另一个更理想吗?还有其他格式要考虑吗?

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

3 个答案:

答案 0 :(得分:3)

正如@WhiteFang34推荐的那样,REST是一个非常易于使用的协议。尽管它不是标准,但它在大多数现代编程语言中被广泛使用并且有很好的文档记录。

REST仅定义每个HTTP方法应该执行的操作,但您仍需要确定要使用的格式。 JSON和XML是最受欢迎的,但根据我的经验JSON在大多数情况下使用起来要麻烦得多。

答案 1 :(得分:2)

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

REST的优点在于它易于使用。消费可能需要更多工作,但它的工作非常干净。 SOAP更难以消费,但是一旦你将它连接起来,大多数框架都能很好地利用它。我自己,从来没有在很多平台上使用SOAP服务。

答案 2 :(得分:1)

您应该考虑使用REST。它在Web服务中很受欢迎。我建议阅读A Brief Introduction to REST,它通过REST与应用程序到应用程序进行通信。还有RESTful Web services: The basics。有很多REST解决方案可供Java选择:

  1. Apache CXF
  2. Jersey
  3. RESTEasy
  4. Restlet
  5. Springdocs
  6. 还有大多数人都遵守的JAX-RS API(所有这些除了Spring之外)。