yg-go
言古科技 web 基础库
使用说明
目录结构
apis
基于Gin封装的更易用的,http服务框架,参考 Web服务开发
cache
缓存相关的工具
config
该包中所有用到的配置的结构体定义,以及配置文件的读取
dbutil
数据库相关的工具, mysql 和 redis
encryptor
加密解密相关的工具
filesys
文件系统相关的工具
httptools
http相关的工具
lifecycle
程序生命周期管理相关的工具
logs
日志相关的工具
nettools
网络相关的工具
notify
通知相关的工具, 邮件、短信和微信
pool
池相关的工具,可用于资源池
random
随机相关的工具
settings
程序设置相关的工具,获取数据库中的设置和远程API的设置
shell
shell相关的工具
tests
测试相关的工具
types
补充的通用数据结构
validate
数据验证相关的工具
vendor
go mod vendor 目录
wechatmp
微信小程序相关的工具
Web服务开发
本框架中定义的接口统一采用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等)
业务错误码
认证
认证主体采用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