安装部署
执行db/dml.sql脚本,创建库表和初始化数据,建议mysql 8.0+版本
docker pull crabc/crabc-admin:latest
docker run -p 9377:9377 --env db_url=jdbc连接 --env db_user=数据库用户 --env db_pwd=数据库密码 -d --name crabc-admin crabc/crabc-admin:latest
账号密码:admin/admin123
新增数据源
1、在菜单服务管理-数据源中,【新建】数据源 2、输入数据库的基本配置后,点击测试连通性,保存后即可创建成功。(每个数据库都会分配一个连接池) 3、在数据库列表中可以直接更新或删除对应的数据库。(删除后连接池会跟随释放)
新建接口
菜单工作台中,左侧的导航面板[数据库,分组]。点击【新建】右边编辑框即可新增一个tab页(默认的tab是SQL查询预览)
编写SQL
在编辑框编写相应的业务SQL,点击【运行】即可在下面的结果tab中显示查询结果。(运行按钮左侧的🪄是格式化SQL)
查询
新增
INSERT INTO t_user(user_name,nick_name,age,create_time) VALUES(#{userName},#{nickName},#{age},now())
修改
UPDATE t_user SET age=#{age} where id=#{Id}
删除
DELETE FROM t_user WHERE id=#{id}
SQL模板
系统内置了查询、修改、删除和新增四种SQL脚本的模板,可根据选择的表自动生成相应的SQL语句
配置属性
右侧面板中【属性】,填写接口相关属性。
请求方式:GET、POST、PUT、DELTE(GET/DELETE不支持Body传数,POST/PUT只支持Body/json)
权限认证:无、Code认证、签名认证
分组:下拉框对接口进行分组,可在左侧面板切换第二个属性进行【新建分组】
请求参数
右侧面板中【请求参数】,填写接口请求参数类型和描述以及分页配置。程序会解析SQL中的符合语法【#{*}】的参数字段,自动填写至右侧面板中。
字段类型:String、Int、Double、Array、Date 有五种类型可选。
分页属性:有三种【不分页/分页】配置可选择,接口默认不分页。
返回参数
右侧面板中【返回参数】,填写返回参数类型和描述。程序会解析SQL中查询返回的字段和别名(insert/update/delete不解析),自动填写至右侧面板中。
字段类型:String、Int、Double、Array、Date 有五种类型可选。
预览测试
完成接口的属性配置后,可点击【预览】进行测试验证。
保存发布
确认查询结果无误后可点击【保存】和【发布】,这时一个接口已经完成了开发。
想要调用已经发布的接口,权限认证配置为:无 的接口可直接调用。
Code认证和签名认证需要在【服务管理-应用列表】中关联应用,根据权限认证类型进行接口传参。
Mybatis标签
Crabc支持Mybatis标签语法的SQL,可直接在编辑框中使用Mybatis标签语法。
if标签
在编辑框内编写带有if标签的,或者点击编辑框下方的if或where快捷生成标签语法。
foreach标签
在编辑框内编写带有foreach标签标签的SQL,或者点击编辑框下方的foreach标签快捷生成标签语法。 请求参数入参list需要设置类型为Array,预览测试时list的集合值可用分开逗号
在线测试传参
set标签
创建分组
在菜单工作台中,切换左侧的导航面板[1、数据库,2,文件夹]至文件夹。在root目录右侧的【+】新建一个业务所属的文件夹。
接口列表
在【服务管理-接口列表】中可以查看已发布和开发中的接口,可对已发布的接口进行上线和下线管理,下线后可对接口进行再次编辑发布。
点击接口名称可跳转到接口详情页查看接口请求参数、返回参数和结果示例。可对接口列表进行Excel 导入和导出
创建应用
应用信息是接口调用时需要在请求Header中加入的安全认证信息。在应用列表中点击【授权API】进行关联授权操作
AppCode: Code认证时需要进行传参。(示例:appCode=**)
AppKey: 签名认证时需要进行传参。
AppSecret: 签名认证时需要进行算法加签得到 sign 。
调用示例
发布的接口先进行应用授权,然后调用使用
Code认证
Code认证类型:在请求Header中加入appCode参数和对应的值
签名认证
请求参数按字母排序之后再后面加上appkey和timestamp(时间戳毫秒)生成字符串,然后把排序后的字符串和应用的AppSecret, 使用HmacSHA256 进行加密,得到sign加密串。
在请求Header中加入签名属性:appkey、timestamp和sign。
timestamp验证有效时间: 十分钟
示例:
{
"Id": 12
}
参数排序后拼接appkey和timestamp:Id=1&appkey=c3a3a69bb8bc49cc8738dabca3362b×tamp=1691241709144
sign: feb7648d59c7c5ae5a2e446bf06bbf2eba466d97abc6fca82cc568b6efa29bc3
签名加密在线工具
流控规则
对已发布的接口进行并发访问流量进行控制,保护接口的稳定性。
点击【新建】创建限流规则,在规则列表中点击【授权API】关联需要保护的接口。
示例:单位时间:10s,QPS阈值:100 效果:10秒接口请求的次数大于100次则进行限流保护
接口日志
程序会记录发布的接口每次调用结果的基本信息。