| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 | 
							- # KPTYUN
 
- 一个go api 后端例子,包含JWT,RBAC(Casbin),增删改查, 一键生成 Restful API接口(不依赖orm)。
 
- ## 主要说明
 
- * v1.1.2
 
- ### 表
 
- * user     
 
-     * username  password   
 
- * role      
 
-     * name 
 
- * menu     
 
-     * name path   method
 
- ### 目录结构
 
- * conf:用于存储配置文件
 
- * docs: 文档(SQL和API注释)
 
- * logs: 日志
 
- * middleware:应用中间件
 
- * models:应用数据库模型
 
- * pkg:第三方包
 
- * routers: 路由逻辑处理
 
- * service: 逻辑处理
 
- * test: 单元测试
 
- ### 权限验证说明
 
- >  利用的casbin库, 将  user  role  menu 进行自动关联
 
- ```
 
- 项目启动时,会自动加载权限. 如有更改,会删除对应的权限,重新加载.
 
- 用户关联角色  
 
- 角色关联菜单  
 
- 权限关系为:
 
- 角色(role.name,menu.path,menu.method)  
 
- 用户(user.username,role.name)
 
- 例如:
 
- test      /api/v1/users       GET
 
- zhuhongbin     test
 
- 当zhuhongbin  GET  /api/v1/users 地址的时候,会去检查权限,因为他属于test组,同时组有对应权限,所以本次请求会通过。
 
- 用户 admin 有所有的权限,不进行权限匹配
 
- 登录接口 /auth  不进行验证
 
- ```
 
- ### 请求
 
- > 请求和接收 都是 传递 json 格式 数据
 
- ```
 
- 例如:
 
- 访问 /auth    获取token
 
- {
 
- 	"username": "admin",
 
- 	"password": "123456"
 
- }
 
- 访问  /api/v1/users   
 
- 请求头设置  Authorization: Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
 
- ```
 
- ## How to run
 
- ### Required
 
- - Mysql
 
- ### Ready
 
- Create a **go database** and import [SQL](docs/sql/go.sql)
 
- 创建一个库,然后导入sql,创建表!
 
- ### Conf
 
- You should modify `conf/app.ini`
 
- ```
 
- [database]
 
- Type = mysql
 
- User = root
 
- Password =
 
- Host = 127.0.0.1:3306
 
- Name = go
 
- TablePrefix = go_
 
- ```
 
- ## Installation
 
- ```
 
- yum install go -y 
 
- cd $GOPATH/src/github.com/kptyun/go-admin
 
- go build main.go
 
- go run  main.go 
 
- ## 热编译,开发时使用
 
- go get github.com/silenceper/gowatch
 
- gowatch   
 
- ```
 
- ### Run
 
- ```
 
- Project information and existing API
 
- [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)
 
- Listening port is 8000
 
- 默认 账户 密码 都为  123456
 
- ```
 
- * 不用orm依赖,直接输入表名字就可以 增删改查 
 
- ``` 
 
- get   http://127.0.0.1:8000/api/restful/go_user
 
- get   http://127.0.0.1:8000/api/restful/go_user/1
 
- post   http://127.0.0.1:8000/api/restful/go_user
 
- 数据格式  json  支持批量
 
- [{
 
- 	"username":"hequan",
 
- 	"password":"hequan1",
 
- 	"created_on": "0",
 
- 	"modified_on":"0",
 
- 	"deleted_on":"0"
 
- }]
 
- put  http://127.0.0.1:8000/api/restful/go_user/2
 
- 数据格式  json
 
- {
 
- 	"password":"654321"
 
- }
 
- delete http://127.0.0.1:8000/api/restful/go_user/2
 
- ```
 
- ###  API  注释
 
- > http://127.0.0.1:8000/swagger/index.html
 
- ## Features
 
- ```
 
- - RESTful API
 
- - Gorm
 
- - logging
 
- - Jwt-go
 
- - Swagger
 
- - Gin
 
- - Graceful restart or stop (fvbock/endless)
 
- - App configurable
 
- - 一键生成 Restful API接口
 
- ```
 
- ## 其他
 
- ```shell
 
- ##更新注释
 
- swag init
 
- ```
 
 
  |