本來寫的一個 API 介面專案,現在抽空改成一個後臺許可權管理專案

dreamfish發表於2018-11-27

最近一個月在從 Laravel 轉到 Go ,練手寫了一個專案,還沒有寫完,還在持續更新中。對比了多個框架 gin , echo , beego , iris 多個框架 (如果想了解幾個框架的詳細對比可以看下這個連結 Awesome Web Frameworks for Gophers ,並且都嘗試的寫了一些小專案,這一次用 宇宙最快框架 iris 寫了這個後臺介面專案。

  1. 使用了 iris 框架
  2. 資料庫使用 gorm
  3. 資料庫 也是使用了幾個 orm 作對比 xorm , beego orm , gorm這個幾 orm 都不錯,可以都瞭解一下,想用哪一個看個人喜好。
  4. 使用了 jwt 做單點認證,上面介紹的幾個框架都是支援 jwt 認證的。iris 框架的 jwt 文件寫的相對比較簡單,我自己參考其他框架,做了一些小修改。
  5. 單元測試 go 有 httptest 包支援 http 請求介面測試,而且功能已經很完善了(當然還沒有 Laravel 那麼方便,不過已經完全夠用了)。在 iris 框架的測試例子基礎上,做了一些簡單封裝方便自己寫後面的開發。 沒有 http 測試的支援的話,寫程式碼,測試程式碼,修改bug的時候都會非常痛苦,特別是你的程式碼結構非常糟糕的時候。如果你還沒有寫單元測試的習慣,強烈推薦你去了解下 TDD 測試驅動開發
  6. iris 框架不像 beego 有自己的熱啟動命令工具。可以用第三方的 gowatch 工具。

廢話了那麼多,現在上專案地址: snowlyg/IrisApiProject


本來寫的一個api介面專案,現在抽空改成一個後臺許可權管理專案

專案介紹

  • 採用 iris 框架目後臺api IrisApiProject
  • 採用了 gorm 資料庫模組 和 jwt 的單點登陸認證方式
  • 測試預設使用了 sqlite3 資料庫
  • 修改了專案檔案結構,重新採用了 models , controllers 的結構(上次用的那種方式實在是看不下去了)。
  • 用 vue 寫了一個前端 IrisApiVueAdmin

專案目錄結構

  • apidoc 介面文件目錄
  • caches redis快取目錄
  • config 專案配置檔案目錄
  • controllers 控制器檔案目錄
  • database 資料庫檔案目錄
  • middleware 中介軟體檔案目錄
  • models 模型檔案目錄
  • tmp 測試資料庫 sqlite3 檔案目錄
  • tools 其他公用方法目錄

api專案初始化

拉取專案

git clone https://github.com/snowlyg/IrisApiProject.git

載入依賴管理包

本來是用 godep 管理的,使用後發現還是是有問題。暫時不使用依賴管理包,依賴要自行下載。

專案配置檔案 /config/config.toml

cp config.toml.example config.toml

執行專案

gowatch //安裝 gowatch 後才可以使用這個命令,不然只能使用

go run main.go // go 命令

單元測試

http test

 go test -v  //所有測試

 go test -run TestUserCreate -v //單個測試

api 文件使用

自動生成文件 (訪問過介面就會自動成功)
因為原生的 jquery.min.js 裡面的 cdn 是使用國外的,訪問很慢。
有條件的可以開個 vpn ,如果沒有可以根據下面的方法修改一下,訪問就很快了

開啟 apidoc/index.html 修改裡面的

https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js

國內的 cdn

https://cdn.bootcss.com/jquery/2.1.3/jquery.min.js

訪問文件,從瀏覽器直接開啟 apidoc/index.html 檔案


前端初始化

拉取專案

git clone https://github.com/snowlyg/IrisApiVueAdmin.git

安裝依賴

npm install

啟動專案

npm run dev

登入專案

輸入地址 http://localhost:8080

//在 conig/config.toml 內配置 LoginUserNameLoginPwd

專案管理員賬號 : username
專案管理員密碼 : password

參考資料

有夢想的鹹魚

相關文章