Go on Rails: 使用 Rails 集成开发 Go API

go-on-rails 是一个 Rails 的 generator,已经发布为 gem,用来在 Rails 项目中集成或是开发 Golang 应用。html

项目地址:github.com/goonr/go-on…前端

本文不会讲述详细的使用方法,因此先把现有的几个示例教程放一下:webpack

  • 简单示例 仿照 Rails guides 里那个入门的 demo,演示如何使用 go-on-rails 建立和生成一个简单 blog 的 Go API。
  • 高级教程 如何建立一个 Golang 项目,并和 rails_admin, devise, cancancan 等集成,为 Go 项目快速增长一个管理后台。同时该项目演示了如何使用 Rails 5.1 新发布的 webpacker 工具,并利用 React 制做独立的前端界面在 Rails 中调用 Go 接口。
  • 如何从 Go API 读取 Rails session 讲解如何在一个 go-on-rails 生成的 Go 接口中读取 Rails 的 session 作用户验证

go-on-rails 作些什么

  1. 使用 Rails 建立 model,而后 go-on-rails 根据 model 的定义生成相应 Go 的数据结构以及一些基本的 CRUD 方法、添加 validation,同时也生成了分页等方法
  2. 对以上生成的这些方法生成 godoc 文档
  3. 根据 Rails 的数据库配置,生成数据库链接配置
  4. 一些命令行工具帮助自动化常见任务,好比安装默认依赖、 format 生成的文件、查看 godoc 文档等

为何使用 go-on-rails

这个工具的目标用户首先是 Rails 开发者,想进行 Golang 的学习或者是想在 Rails 项目中集成 Go API。也就是要对 Rails 熟悉,不然可能不少人不会为了尝试这个工具来学习 Rails 的。git

接下来主要说一下为何会有这个 gem,或者说使用 Rails 开发 Go 项目真的有什么优点吗?程序员

  1. 配置管理。好比经过在 Rails 中对数据库进行配置,生成的 Go 项目会根据 Rails 的配置生成相应环境数据库的链接配置。一样,其它的配置也能够利用 Rails 的配置来共享使用。github

  2. 利用 Rails 丰富的工具链,好比用 rails db:seed 写入测试数据,利用 rails console 对数据进行测试等,以及数据库管理部分的 rails db:* 等操做。web

  3. 方便对数据库进行各类 migrations 的管理,不用手写 schema,延续了 Rails 程序员开发过程当中对数据库的操做习惯。数据库

  4. model 的定义一样会方便 Rails 开发者的习惯,go-on-rails 会对 association 和 validation 中的大部分生成操做函数。后端

  5. Rails 5.1 中 webpacker 的发布,更突显了 Rails 在作“Web 集成开发环境”方面的新能力。更多先后端分离系统的出现,使在 Rails 中集成 Go API 的重复工做量大大下降,只须要修改一下调用的连接可能就完成了一次系统改造。另外,使用 webpacker 能够很方便的制做前端页面来调用 Go API。关于如何使用能够看这里的教程ruby

  6. 对于某些中小规模的系统,经过在 Rails 中集成 Go API 能够改善一些接口的性能,而不须要对系统架构进行重构。

go-on-rails 目前还在开发过程当中,欢迎各类参与和 pr。

相关文章
相关标签/搜索