Skip to content

VincentYu/server

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AOAS 通用服务端

AOAS是一个快速开发系统模板, 基于角色授权体系.

整个系统以JSON格式来交互数据, 前台传过来的内容也是JSON格式字符串, 而非传统的form字段. 如在js端传过来的, 可用JSON.stringify(xxx)来格式化后再传过来.

为了方便移动端调用, 未用session功能, 而是用了jwt token

新增功能模块

若要增加模块功能. 可按如下步骤来操作.

  • models目录增加新的model. 并在models/base.go下的SyncTables方法里增加新model的名字, 以便同步数据结构到数据库.
  • controllers目录增加对应的操作控制器. 可继承Base这个控制器. 里面会带几个可能会用到的对象. 如logger, dbengine, config. 有某些情况下可能要用到config中的某些值. 另可在新的controller里写init方法. 把可能用到的权限写进去, 以便后续做授权操作. 具体可参考controllers/user.go
  • 在routers/router.go里增对应的路由连接.

调试时可用建议用gin这类的控件, 以便实时刷新变动. gin一般用到3000端口, 但我们实际app的端口不是3000时, 可跟参数 -a xxxx 即可. 如我们在config中设置的app port是8080, 可用如下命令去启动gin: gin -a 8080. 此时程序gin以3000端口来启动.

API调用

从客户端访问时, 有权限检查的API需要传如下header. 下面的token在用户调用login登陆后会得到.

Authorization: Bearer DvjoEd6sKbHBLtMvrWWT

Bearer后跟的为你调用login时拿到的token. 注意token和Bearer中间有个空格

基础API

默认API前缀地址为: http://localhost:3000/api/..., 如登陆操作URL为: http://localhost:3000/api/login.

登陆/注册
URL Method Description Permission
login POST 登陆
register POST 注册账号
用户相关
URL Method Description Permission
users GET 查询用户列表 user.list
users/{id} GET 查看指定用户信息 user.get
users/{id}/active POST 禁用/启用户用户账号 user.active
users/{id}/roles GET 用户角色列表 user.roles
角色/权限相关
URL Method Description Permission
roles GET 查询角色列表 role.list
roles/{id} GET 查看指定用户信息 user.get
roles/{id}/users GET 角色用户列表 role.users
roles/{id}/users POST 增加用户到指定角色 role.adduser
roles/{id}/users DELETE 从指定角色删除用户 role.deleteuser
roles/{id}/permissions GET 角色可操作的权限列表 role.permissions
roles/{id}/permissions POST 增加权限到指定角色 role.addpermission
roles/{id}/permissions DELETE 从指定角色删除权限 role.deletepermissions

上面的增加/删除用户时, 需要传用户id列表. 如{"user_ids":[1,22]}. 增/删权限时, 需要传权限id列表, 如: {"permission_ids": ["user.active", "user.roles"]}

文件操作相关
URL Method Description Permission
files GET 查询用户上传文件记录列表 file.list
files POST 上传文件(file对象名为file) file.upload

用到的库

工具推荐

调试调用API时, 我推荐 Insomnia, 整个用下来非常不错. 尤其支持变量及组功能相对有用.

About

restful api server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%