我想建立一个网页,在其中我将数据库,后端和前端分开,然后通过REST进行通信。我对如何构造项目感到很困惑。据我了解,有以下几种方法:
进行不同的项目:一个用于前端(例如Angular),另一个用于后端(Spring),包括数据库连接。它们彼此完全分开,可以使用不同的IDE。
在一个大项目中构建它,但仍使用REST进行通信(请参见下图)。
现在我想知道这两种方法之间的区别是什么?我不知道(也不问)哪个是更好的一个,但是我什至无法找出理由来选择一个高于或低于另一个。
答案 0 :(得分:1)
这实际上是关于个人喜好的问题,但是您要让它们处于完全不同的项目中,同时您可以将JS软件包(来自ng build)放置在(Spring应用程序的)资源/静态文件夹中,并且如果您想在同一服务器上运行它们,它将可以完美地工作。
您可以设置代理配置以使其变得更简单,例如:
{
"/api": {
"target": "http://localhost:8080",
"secure": false
}
}
通过这种方式,只要您使用Angulars HttpClient之类的代码进行休息呼叫,只要将/api
放在url之前,它就会称为您的spring后端。
示例:
public fetchResource(id: number): Observable<Resource> {
return this.http.get(`/api/resources/${id}`);
}
我更喜欢将客户端和api放在不同的项目中。
无论何时要将JS捆绑包添加到资源/静态文件夹中,都可以在package.json
中创建一个NPM脚本来为您完成。