項目地址
https://github.com/wuhe52/golang-gin-restfulAPI-example-app
項目特性
基于gin
使用MongoDB數(shù)據(jù)庫
gin-jwt權(quán)限驗證
gin-authz從session里取用戶的角色進(jìn)行權(quán)限管理
使用gin-swagger自動生成api文檔
將gin默認(rèn)的validator.v8升級到validator.v9
使用casbin權(quán)限管理
使用go-ini讀寫配置文件
項目目錄
.
├── server.go? ? ? ? ? ? ? ? ? ? ? // 入口文件
├── docs? ? ? ? ? ? ? ? ? ? ? ? ? ? // swagger生成的api文檔
├── web? ? ? ? ? ? ? ? ? ? ? ? ? ? // vue寫的前端單頁頁面
├── common
│? ├── db? ? ? ? ? ? ? ? ? ? ? ? ? // mongoDB相關(guān)
│? ├── utils? ? ? ? ? ? ? ? ? ? ? // 公用工具函數(shù)
│? ├── pkg? ? ? ? ? ? ? ? ? ? ? ? // 公用包
|? |? └── e
|? |? ? ? ├── code.go? ? ? ? ? ? // http狀態(tài)碼常量
│? |? ? ? └── message.go? ? ? ? ? // 狀態(tài)碼對應(yīng)的message常量
│? ├── validator
|? |? ├── custom_validate.go? ? ? // 自定義驗證器
│? |? └── v8_to_v9.go? ? ? ? ? ? // 將gin的默認(rèn)驗證器從v8升級到v9
│? └── middlewares? ?
|? ? ? ├── authz.go? ? ? ? ? ? ? ? // 角色認(rèn)證
│? ? ? └── session.go? ? ? ? ? ? ? // 使用session
├── conf? ? ? ? ? ? ? ? ? ? ? ? ? ? // 應(yīng)用配置相關(guān)文件
|? ├── authz? ? ? ? ? ? ? ? ? ? ?
|? |? ├── model.conf? ? ? ? ? ? ? // 權(quán)限管理方案配置
│? |? └── policy.csv? ? ? ? ? ? ? // 權(quán)限分配表
|? ├── app.ini? ? ? ? ? ? ? ? ? ? // 應(yīng)用配置文件
│? └── conf.go? ? ? ? ? ? ? ? ? ? // 初始化配置文件
└── routers
? ? ├── routers.go? ? ? ? ? ? ? ? ? // 路由初始化
? ? └── api? ? ? ? ? ? ? ? ? ? ? ? // api文件
? ? ? ? └── v1? ? ? ? ? ? ? ? ? ? ? // api版本v1
? ? ? ? ? ? ├── v1.go? ? ? ? ? ? ? // v1版本api入口
? ? ? ? ? ? ├── mining-machine? ? ? // 礦機(jī)模塊
? ? ? ? ? ? |? ├── models.go? ? ? // 模型和數(shù)據(jù)庫操作
? ? ? ? ? ? |? ├── controlers.go? // 當(dāng)前模塊的控制器
? ? ? ? ? ? |? ├── routers.go? ? ? // 當(dāng)前模塊的路由
? ? ? ? ? ? |? ├── middlewares.go? // 當(dāng)前模塊的中間件
? ? ? ? ? ? |? └── validators.go? // 當(dāng)前模塊的驗證器
? ? ? ? ? ? └── user? ? ? ? ? ? ? ? // 用戶模塊
? ? ? ? ? ? ? ? ├── models.go? ? ? // 模型和數(shù)據(jù)庫操作
? ? ? ? ? ? ? ? ├── controlers.go? // 當(dāng)前模塊的控制器
? ? ? ? ? ? ? ? ├── routers.go? ? ? // 當(dāng)前模塊的路由
? ? ? ? ? ? ? ? ├── middlewares.go? // 當(dāng)前模塊的中間件
? ? ? ? ? ? ? ? └── validators.go? // 當(dāng)前模塊的驗證器