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

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

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

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

  • 简单示例 仿照 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 的。

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

  1. 配置管理。比如通过在 Rails 中对数据库进行配置,生成的 Go 项目会根据 Rails 的配置生成相应环境数据库的连接配置。同样,其它的配置也可以利用 Rails 的配置来共享使用。

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

  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。关于如何使用可以看这里的教程

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值