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
- ```
|