使用Web服务或Java API

时间:2013-12-17 13:59:58

标签: web-services rest software-design

这是一个设计问题。

我们正在用Java实现REST-ful Web服务,我们的设计将瘦服务层与域层分开。我们的域层可以封装在自己的.jar中,因为它是完全独立的,并且不知道服务层。服务层将为我们的一些非Java客户端提供服务,我想知道,允许Java客户端直接使用Java API的设计是否很差?在我看来,Java软件没有必要通过Web服务,但有人可能会说Web服务是一个更标准化的界面,所有软件都应该通过它。我可以有一些理由支持或反对允许Java客户端直接使用域层API吗?

1 个答案:

答案 0 :(得分:1)

我相信你回答了自己的问题(至少在某种程度上)。

  

但有人可能会说,Web服务是一个更标准化的界面,所有软件都应该通过它。

Web服务绝对是所有客户端的标准化界面,无论他们在哪个平台上构建客户端(java,C#,asp.net,php等)。您可能仍然通过RMI公开您的java apis(请参阅此处 What is rmi registry)并让您的JAVA客户端使用这些API,但除了公开这些API之外,他们还必须跟上您对POJO或域所做的任何更改通过进行这些RMI调用,他们通过线路消费(否则他们将得到serialversionUID不匹配错误)。这更令人痛苦,因为您必须开始以某种方式与您的客户共享您的域类(将您的域类的.jar集中在他们将有权访问的某个maven存储库上)。

总而言之,Webservices是一种更清洁的方式。那将是我的2美分