言古科技 web 基础库
apis基于Gin封装的更易用的,http服务框架,参考 Web服务开发cache缓存相关的工具config该包中所有用到的配置的结构体定义,以及配置文件的读取dbutil数据库相关的工具, mysql 和 redisencryptor加密解密相关的工具filesys文件系统相关的工具httptoolshttp相关的工具lifecycle程序生命周期管理相关的工具logs日志相关的工具nettools网络相关的工具notify通知相关的工具, 邮件、短信和微信pool池相关的工具,可用于资源池random随机相关的工具settings程序设置相关的工具,获取数据库中的设置和远程API的设置shellshell相关的工具tests测试相关的工具types补充的通用数据结构validate数据验证相关的工具vendorgo mod vendor 目录wechatmp微信小程序相关的工具
本框架中定义的接口统一采用POST请求,路径为前缀(/apis/p/)加方法名(如/account.CreateRole),大小写敏感。
完整请求 如POST /apis/p/account.CreateRole
请求Body
{
// cmd 方法名,路径中已经包含,可为空
"cmd": "account.CreateRole”,
"env": "环境类型,可为空",
// 业务内容
"Request": {
"name": "",
"description": "",
"Offset": 1,
"Filters": [{
"Field": "username",
"Value": ["adm"],
"ExactMatch": false
}, {
"Field": "auto",
"Value": ["adm"],
"ExactMatch": false
}],
}
}响应Body
{
"code": 10001,
"message": "错误信息",
"env": "环境类型,可为空"
// 业务内容
"Response": {...}
}code为0则是成功,大于0为失败,code小于10000时,意义同http标准返回码(如400,401,404等)
- 10001: ...
认证主体采用JWT,token中为自定义的claims,通过Authorization头部传递,格式如下:
Authorization: Bearer ${module}-${TOKEN}其中${module}为模块名,默认为空,用于区分不同模块或者用户角色系统的token,在调用AuthInject时,会自动注入module。
${TOKEN}为JWT生成的token
可参考 https://github.com/ygpkg/yg-go/blob/main/apis/runtime/server/author.go#L18