RESTful和J2EE

时间:2016-12-08 12:15:11

标签: java rest java-ee

我开发了一个带有Java EE的Web应用程序,它连接到数据库。该应用程序部署在Tomcat 8上。该应用程序分为三层:数据库层,业务层和表示层。 现在我需要开发一个RESTful API,它将使用业务层,并将提供表示层提供的大多数功能。客户端有两个选项可供选择:打开浏览器,连接到APP并使用它或使用自己软件中的RESTful Web服务。

我的问题是:我应该在部署APP的同一台服务器上还是单独部署RESTful API?你有什么建议? 并且,您建议对REST Web服务进行何种身份验证?

谢谢!

1 个答案:

答案 0 :(得分:2)

这是一个相当广泛的问题,简短的答案是取决于

从功能上讲,这里有三个部分:

  • 表示层
  • API接口
  • 后台:业务和数据库层位于第一个
  • 之后

常见的技术架构是:

  • 一个用于API和业务和数据库层的应用程序,一个使用API​​的Web层应用程序
  • 同一应用程序上的所有内容(API,Web和业务)。

前者提供了更好的分离,对于重载应用程序可能很有趣,或者如果您打算转移到javascript接口(AngularJS ofr示例),后者将更容易实现。

对于身份验证,传递凭据以及API的每个请求更简单,但您应该考虑通过过滤器和/或AOP概念在应用程序本身之外进行管理。 Spring Security是如何实现这一点的一个例子,它提供了业务代码与身份验证和授权之间非常松散的耦合。然后,您可以选择和更改您的身份验证方法,而不会对应用程序的核心产生任何影响。