我开发了一个带有Java EE的Web应用程序,它连接到数据库。该应用程序部署在Tomcat 8上。该应用程序分为三层:数据库层,业务层和表示层。 现在我需要开发一个RESTful API,它将使用业务层,并将提供表示层提供的大多数功能。客户端有两个选项可供选择:打开浏览器,连接到APP并使用它或使用自己软件中的RESTful Web服务。
我的问题是:我应该在部署APP的同一台服务器上还是单独部署RESTful API?你有什么建议? 并且,您建议对REST Web服务进行何种身份验证?
谢谢!
答案 0 :(得分:2)
这是一个相当广泛的问题,简短的答案是取决于。
从功能上讲,这里有三个部分:
常见的技术架构是:
前者提供了更好的分离,对于重载应用程序可能很有趣,或者如果您打算转移到javascript接口(AngularJS ofr示例),后者将更容易实现。
对于身份验证,传递凭据以及API的每个请求更简单,但您应该考虑通过过滤器和/或AOP概念在应用程序本身之外进行管理。 Spring Security是如何实现这一点的一个例子,它提供了业务代码与身份验证和授权之间非常松散的耦合。然后,您可以选择和更改您的身份验证方法,而不会对应用程序的核心产生任何影响。