【发布时间】:2019-04-14 08:39:57
【问题描述】:
我想构建一个网页,在其中分离数据库、后端和前端,然后通过 REST 进行通信。我对如何构建项目感到非常困惑。据我了解,有以下几种方法:
制作不同的项目:一个用于前端(比如说 Angular),一个用于后端(Spring),包括数据库连接。它们彼此完全分开,可能会使用不同的 IDE。
在一个大项目中构建它,但仍使用 REST 进行通信(见下图)。
现在我想知道这两种方法之间的区别是什么?我不知道(也不会问)哪一种更好,但我什至无法弄清楚选择一个高于或低于另一个的原因或影响。
【问题讨论】:
-
我认为最好的解决方案是遵循
JHipster的架构,将后端和前端放在一个项目中。如果将它们放入两个不同的项目中,则必须处理 CORS,并且还要使用合适的身份验证机制,例如JWT或Oauth -
@zakariaamine 但是当我通过 REST 分离前端和后端时,我是否总是需要使用合适的身份验证机制,因为我需要一种方法来验证用户访问权限?还是我弄错了?
-
如果将它们放在同一个项目中,并通过 spring 控制器直接提供前端文件,那么您可以简单地使用已经提供的 HTTP 会话。否则,不同的项目需要在前端进行进一步设置,您必须在其中处理安全性和后端以颁发和验证令牌。
-
@zakariaamine 我发现我很难理解所有这些如何协同工作。但是让我们看看我们是否可以稍微澄清一下:每当我可以简单地使用已经提供的 HTTP 会话时,我在前端和后端之间没有“真正的”REST 分离,对吧?因为我也可以离开 REST 的东西。
标签: spring angular maven spring-boot