• Stars
    star
    410
  • Rank 105,468 (Top 3 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

go web api,包含gin+gorm+jwt+rbac等。

Go Web Admin

版本 语言 base base

一个Go Web Api 后端 简单例子,包含 用户、权限、菜单、JWT 、 RBAC(Casbin)等!

本项目已停止维护,请仅供参考!

交流QQ群: 620176501

  • user
    • username password
  • role
    • name
  • menu
    • name path method

API 注释

http://127.0.0.1:8000/swagger/index.html

demo

目录结构

  • conf:用于存储配置文件
  • docs: 文档
    • sql执行命令
    • API注释
  • logs: 日志
  • middleware:应用中间件
    • inject 初始化对象
    • jwt
    • permission 权限验证
  • models:应用数据库模型
  • pkg:第三方包
  • routers: 路由逻辑处理
  • service: 逻辑处理
  • test: 单元测试

权限验证说明

项目启动时,会自动user  role  menu 进行自动关联!  如有更改,会删除对应的权限,重新加载!

用户  关联  角色  
角色  关联  菜单  
权限关系为:
角色(role.name,  menu.path,  menu.method)  
用户(user.username,   role.name)

例如:
运维部      /api/v1/users       GET
hequan     运维部

当hequan  GET  /api/v1/users 地址的时候,会去检查权限,因为他属于运维部 ,同时 运维部 有对应权限,所以本次请求会通过。

用户 admin 有所有的权限,不进行权限匹配

登录接口 /auth    /api/v1/userInfo 不进行验证

请求

请求和接收 都是 传递 json 格式 数据

例如:
访问 /auth    获取token
{
	"username": "admin",
	"password": "123456"
}

访问      /api/v1/menus?page=2    页面是page
请求头设置  Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


访问   /api/v1/userInfo  获取用户信息
前端所需的权限 放在password字段里面,已经去重了。

"data": {
        "lists": {
            "id": 2,
            "created_on": 1550642309,
            "modified_on": 1550642309,
            "deleted_on": 0,
            "username": "hequan",
            "password": ",system,menu,create_menu,update_menu,delete_menu,user,create_user,update_user,delete_user,role,create_role,update_role,delete_role",
            "role": [
                {
                    "id": 2,
                    "created_on": 0,
                    "modified_on": 0,
                    "deleted_on": 0,
                    "name": "运维部",
                    "menu": null
                }
            ]
        }
    },

部署

支持

  • 部署 Mysql

创建一个库 go,然后导入sql,docs/sql/go.sql 创建表!

配置文件

You should modify conf/app.ini

[database]
Type = mysql
User = root
Password =
Host = 127.0.0.1:3306
Name = go
TablePrefix = go_

安装部署


yum install go -y 


export GOPROXY=https://goproxy.io
go get go-admin
cd $GOPATH/src/go-admin
go build main.go
go run  main.go 

热编译(开发时使用)

go get github.com/silenceper/gowatch

gowatch   

windows 开发 需要gcc

执行会报错 "gcc" executable file not found in %PATH% 可以参考这个 安装gcc https://blog.csdn.net/xia_2017/article/details/105545789

运行

更新角色权限关系 [[hequan 运维部]]
角色权限关系 [[hequan 运维部]]
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:	export GIN_MODE=release
 - using code:	gin.SetMode(gin.ReleaseMode)

[GIN-debug] POST   /auth                     --> go-admin/routers/api.Auth (4 handlers)
[GIN-debug] GET    /swagger/*any             --> github.com/swaggo/gin-swagger.WrapHandler.func1 (4 handlers)
[GIN-debug] GET    /api/v1/menus             --> go-admin/routers/api/v1.GetMenus (6 handlers)
[GIN-debug] GET    /api/v1/menus/:id         --> go-admin/routers/api/v1.GetMenu (6 handlers)
[GIN-debug] POST   /api/v1/menus             --> go-admin/routers/api/v1.AddMenu (6 handlers)
[GIN-debug] PUT    /api/v1/menus/:id         --> go-admin/routers/api/v1.EditMenu (6 handlers)
[GIN-debug] DELETE /api/v1/menus/:id         --> go-admin/routers/api/v1.DeleteMenu (6 handlers)
[GIN-debug] GET    /api/v1/roles             --> go-admin/routers/api/v1.GetRoles (6 handlers)
[GIN-debug] GET    /api/v1/roles/:id         --> go-admin/routers/api/v1.GetRole (6 handlers)
[GIN-debug] POST   /api/v1/roles             --> go-admin/routers/api/v1.AddRole (6 handlers)
[GIN-debug] PUT    /api/v1/roles/:id         --> go-admin/routers/api/v1.EditRole (6 handlers)
[GIN-debug] DELETE /api/v1/roles/:id         --> go-admin/routers/api/v1.DeleteRole (6 handlers)
[GIN-debug] GET    /api/v1/users             --> go-admin/routers/api.GetUsers (6 handlers)
[GIN-debug] GET    /api/v1/users/:id         --> go-admin/routers/api.GetUser (6 handlers)
[GIN-debug] POST   /api/v1/users             --> go-admin/routers/api.AddUser (6 handlers)
[GIN-debug] PUT    /api/v1/users/:id         --> go-admin/routers/api.EditUser (6 handlers)
[GIN-debug] DELETE /api/v1/users/:id         --> go-admin/routers/api.DeleteUser (6 handlers)
2019/05/31 14:48:43 [info] start http server listening :8000

Features

- RESTful API
- Gorm
- logging
- Jwt-go
- Swagger
- Gin
- Graceful restart or stop (fvbock/endless)
- App configurable

开发

  • 何全

特别感谢

本项目主要参考了:
https://github.com/EDDYCJY/go-gin-example  包含更多的例子,上传文件图片等。本项目进行了增改。
https://github.com/LyricTian/gin-admin     主要为 gin+ casbin例子。

其他

## 更新API文档
swag init

## 
cd /opt/go-admin
nohup  go run  main.go   >>  /tmp/go-http.log   2>&1  & 

More Repositories

1

autoops

linux资产管理,cmdb,django, webssh,运维管理平台,数据库操作平台 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!
Python
356
star
2

chain

链喵 CMDB 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!
Python
239
star
3

cmdb

资产管理、主机管理、批量执行命令|脚本、流量图、webssh 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!
Python
128
star
4

seal

django-base-templates 主要为 django 开发DEMO, 支持 非前后端分离 和 前后端分离模式 。
Python
124
star
5

go-webssh

go版本 webssh
Go
74
star
6

husky

Django之入门CMDB系统
Python
30
star
7

zabbix-models

zabbix 模板 ansible api
Python
28
star
8

raptor

猛禽 运维平台 项目完结,后续不再更新。
Go
21
star
9

seal-vue

本项目为 https://github.com/hequan2017/seal 项目 前端vue版本 基于 iview-admin 2.5.0 支持 动态菜单 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!
Vue
16
star
10

coypus

coypus 海狸鼠 基于goframe 的 go web 后端 本项目已停止开发!因长时间未对代码进行维护,可能会造成项目在不同环境上无法部署、运行BUG等问题,请知晓!项目仅供参考!
Go
12
star
11

pandaAdmin

panda 熊猫后端 https://github.com/hequan2017/panda 前端地址。
Python
7
star
12

go-admin-vue

go-admin-vue
Vue
4
star
13

python-code

python 开发规范
4
star
14

panda

管理平台 https://github.com/hequan2017/pandaAdmin 后端地址
JavaScript
3
star
15

go-web-admin

基本gf的 go web 管理框架
Go
3
star
16

coypus-vue

coypus-vue
Vue
1
star
17

go-micro-hello-world

hello world go 微服务例子
Go
1
star
18

quan

新开始写的运维平台。
Go
1
star
19

seal-d2-admin

seal-d2-admin
JavaScript
1
star
20

pcdn-p2p-peering-bandwidth

点对点 互拉带宽 pcdn
Go
1
star