我希望您对网络架构问题的看法很平均。
上下文:我必须为我的公司构建一个自定义CRM(客户关系管理)Web平台,它几乎只对客户,合同,发票等实体执行CRUD操作。同样,它应该处理用户管理,如注册,身份验证和授权(用户定义允许执行哪种类型的操作的角色)。如果您想要更详细的想法,请data model。
限制:我在服务器端有义务使用:
对于客户端,我可以在HTML,CSS和Javascript中自由使用任何前端Web框架和库组件,而无需任何浏览器限制。
关注:我主要关注客户端 - 服务器之间的分离,这就是我倾向于使用SPA方法的原因。我想通过使用CakePHP模板文件(。ctp)尽可能避免在后端上呈现视图。如果可能的话,我甚至想通过后端几乎完全不知道客户端。
除了提供最初的html,css和js应用程序文件之外,我想使用我的后端作为整个Json REST API,用于客户端通过Ajax消耗的 EVERY CRUD操作调用。我考虑使用AngularJS来处理所有MVVM客户端部分。
问题:单页应用是否适合此方法?你会怎么做?任何链接或文档将不胜感激。
感谢您对此事的见解!
祝你有个美好的一天。
答案 0 :(得分:2)
我肯定对我的答案有偏见,但到目前为止我已经在前端使用Angular和在后端使用Node了。如果您要为JSON提供REST API,那么无论您为前端选择什么,它都应该是相同的。
Angular允许非常简单地应用MVC模式。因此,使用附加到前端的任何逻辑都非常容易。有许多教程和示例for A&A虽然我已经使用并推荐了JWT,因为你的API将在(几乎)所有内容中提供JSON,并且很容易在每个请求上附加到Auth头(使用服务) )。
Angular有$ http方法,允许基本的POST和GET到你提供的任何URL,轻松处理错误和成功。
除了与服务器的交互之外,它还有几种有用且简洁的方式来显示浏览器上的信息,例如用户信息,角色等,例如使用双花括号{{user.name}}
任何问题都可以随意提问!
答案 1 :(得分:1)
如果你可以用cakePhp进行Api休息,角度是做前端的好选择。
我建议你在你的api休息时使用$ resource。 $ http。
更有效率答案 2 :(得分:1)
由一家知名公司雇佣,我们必须这样做。我们使用ui.router构建了一个大型SPA来处理路由。 ui.router声称是事实上的'角度路由解决方案确实是最好的解决方案。
我们有Angular前端和Node后端,但正如你所说,前端和后端完全不可知。
要进一步区分问题,您应该考虑将解决方案,网络文件和网络服务器停靠在一个容器中,与其他容器中的后端通信。
PS如果你不熟悉docker,你想要一个非常快速的概述,请参阅:
Are changes to Docker images automatically transferred to deployed containers?
我感谢您可能会限制使用Docker,但如果没有,那就太棒了!