在 Java 堆栈上使用 REST 进行 Web 应用程序架构设计

Web App Architecture design with REST on Java Stack

我计划在 REST api 之上开发 uild 网络应用程序。我一直在考虑 2 种不同的方式来编写 web UI 层来控制视图、用户会话管理等。

一种方法:只需使用 Angular 或类似框架将所有内容写入 Javascript。但是,我在这里看到的问题是,用户会话管理以及将所有内容都暴露给客户端可能不是一个好主意。我认为任何精通网页设计的人都可以找到 javascript 逻辑和终点。

第二种方式:在 REST 上编写一个瘦控制器和用户会话管理层,可能是 Spring web mvc 项目/Node JS 等,并从那里控制一切。但是,我在这里看到的问题是,我们必须在这里有一些端点查找逻辑,以将 web ui 请求映射到 REST 端点。每次我们添加更多端点时,我们也必须维护该目录。此外,JSON 将经历许多转换,这可能会增加一些开销。

任何人都可以为此提出一些架构想法吗?我在这里遗漏了什么吗?我们可以在 REST 上编写安全 Javascript web ui 层吗?

我也在考虑使用像 RabbitMQ 这样的消息代理来扩展它。任何建议表示赞赏。

提前致谢。

您应该首先决定如何划分客户端和服务器之间的职责。你想让服务器做什么,又想让客户端做什么?您已经知道服务器应该隐藏敏感信息,以保证应用程序的安全。服务器还需要什么吗?如果有数据库,您可能还希望让服务器处理对数据库的所有访问。

请注意,还有 Firebase 等替代方案,它们会为您处理后端,而您主要关注 front-end。可能会为您节省大量的身份验证和数据访问工作。

您还需要考虑他们将使用哪种沟通方式?如果是Request-Response,那么REST就合适了。如果是聊天之类的双向消息,我建议看看Meteor。在 Meteor 中,您为 front-end、back-end 和移动设备写入 Javascript。

您提到您担心必须经常转换 Json。如果你用 NodeJS 做你的 server-side,这个问题就会消失。在 server-side 上是 Javascript。

实现应用程序的方法有很多种。您可以更具体地说明您要做什么,然后我们可能会推荐更适合您的框架。