在 Rails 中分离后端和前端服务器

Posted

技术标签:

【中文标题】在 Rails 中分离后端和前端服务器【英文标题】:Separating back end and front end servers in Rails 【发布时间】:2016-12-02 07:19:13 【问题描述】:

我正在开发具有独立前端和后端服务器的现有应用程序。两者都是 Rails 服务器前端和后端。

两个 Rails 服务器的目录结构相同,但有一些主要区别。那些是

前端没有 database.yml,迁移文件,没有模型,后端没有视图。 控制器代码或文件不同。 路线和宝石是不同的。

现在的想法是前端将向后端发送请求以获取 Json 格式的数据。

问题 - 完成此任务的最佳方法是什么?

1) 在两台服务器上运行 Rails 应用程序的两个副本(前端和后端),然后通过 HTTP(或连接到远程数据库)在 POST/PUT 信息之间进行调用是否是个好主意?

2) 为此使用 Rest 客户端是个好主意吗?

如果有人可以为此提供一个好的指南或参考,那就太好了。

【问题讨论】:

【参考方案1】:

如果您已经从后端服务器公开了 JSON API(Restful API),则使用 rails 服务器仅用于渲染视图不是一个好主意。

正如您提到的,您正在尝试使用 RESTful Web 服务开发三层架构。有许多前端客户端技术可用于实现您的目的。

1. Angular2

AngularJS web 框架的第二个版本。 Angular 2 采用基于 Web 组件的方法来构建强大的 Web 应用程序。它与提供对 ECMAScript 5、ECMAScript 6 和 ECMAScript 7 支持的 TypeScript 一起使用。

更多信息:https://angular.io/

2。 ReactJS

React 是一个用于构建用户界面的 javascript 框架。它使用了一种声明式范式,可以更轻松地推理您的应用程序,并旨在高效和灵活。 React 最初在 Facebook 内部开发,现已开源,并继续由 Facebook 和开源社区开发和维护。

更多信息:https://facebook.github.io/react/

3.奥蕾莉亚

Aurelia 是下一代 JavaScript 客户端框架,它利用简单的约定来激发您的创造力。

更多信息:http://aurelia.io/

还有更多可用的技术:Polymer.js, Backbone.js, Meteor

希望有帮助!

【讨论】:

以上是关于在 Rails 中分离后端和前端服务器的主要内容,如果未能解决你的问题,请参考以下文章

分离 graphql/relay 后端和前端

后端和前端分离时的Django CSRF

如果它们是分开的,如何部署后端和前端项目?

基于 Laravel API 后端和 Vuejs 前端构建

重复位置“/”Nginx错误后端和前端

后端和前端之间的文件(完整示例)