Web services 使用web服务或Java API

Web services 使用web服务或Java API,web-services,rest,software-design,Web Services,Rest,Software Design,这是一个设计问题 我们正在用Java实现REST-ful Web服务,我们的设计将精简服务层与域层分离。我们的域层可以封装在自己的.jar中,因为它是完全独立的,不知道服务层。服务层将为我们的一些非Java客户机提供服务,我想知道,允许Java客户机直接使用JavaAPI是否设计糟糕?在我看来,Java软件没有必要通过web服务,但可以说web服务是一个更标准化的接口,所有软件都应该通过它。我有什么理由支持或反对Java客户端直接使用域层API吗?我相信您已经回答了自己的问题(至少在某种程度上)

这是一个设计问题


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

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

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

对于所有客户机来说,Web服务无疑是更加标准化的接口,无论它们构建客户机的平台是什么(java、C#、asp.net、php等)。您仍然可以通过RMI(参见此处)公开java API,并让java客户机使用这些API,但在公开这些API的同时,他们还必须通过进行这些RMI调用来跟上您对POJO或域类所做的任何更改(否则他们会得到serialversionUID不匹配的错误)。这更令人痛苦,因为您必须开始以某种方式与客户端共享域类(将域类的.jar集中在他们将有权访问的某个maven存储库上)

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