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。

相關文章
相關標籤/搜索