# apijson-ruoyi
**Repository Path**: laochen/apijson-ruoyi
## Basic Information
- **Project Name**: apijson-ruoyi
- **Description**: https://github.com/Tencent/APIJSON/issues/601
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 4
- **Created**: 2023-09-10
- **Last Updated**: 2023-09-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### Description
# **功能点**
- apijson和若依框架整合
- 导入数据库表,生成apijson配置
- 页面模板,无需任何后台开发,即可使用
- 编辑表配置,生成apijson配置(在线初始化,增量和全量)
- 执行sql生成菜单
- 将模板生成前端页面拷贝进项目
- 管理员测试新增功能 增删改查
- 鉴权
给普通用户分配查询权限
测试是否存在越权
给普通用户分配新增、修改、删除权限,测试功能是否正常
- 必传参数、字段类型、字段校验、前置后置函数等
- json、sql、function 生成url
- apijson底层 接口、数据库表操作鉴权
已经将apijson和若依鉴权认证完全打通, 通过菜单配置权限即可。
- 数据操作人
场景:比如订单, 用户只能查询自己拥有的订单, 管理员在后管可以查询所有的订单
- 假删除
自动将删除语句替换为修改字段状态
# **功能使用说明**
## **使用数据库表模板,生成apijson配置**
### **代码生成**
### **选择您要导入的数据库表**
### **编辑表配置**
选择 页面存放菜单位置
### **生成apijson配置**
### **执行sql语句,生成菜单**
### **拷贝前端页面**
### **管理员增删改查测试**
## **鉴权**
### **给普通用户分配查询权限**
测试普通用户是否能够插入数据
退出登录,切换普通用户
普通用户只有查询权限
测试是否存在越权
postman 使用普通用户的token,模拟请求, 测试是否可以插入数据
http://localhost:8080/forms/api/gen/Post1692343037000
```json
{
"postId": null,
"postCode": "23",
"postName": "23",
"postSort": "23",
"status": "0",
"createBy": null,
"createTime": null,
"updateBy": null,
"updateTime": null,
"remark": "32"
}
```
apijson已经将鉴权和若依框架整合。
给普通用户分配新增、修改、删除权限
## **必传参数、字段类型、字段校验、前置后置函数等**
具体使用请参照apijson官网, 非常简单,配置即可。
可以在线配置,初始化生效,无需重启服务
必传参数
前置后置函数(自定义校验方式)
校验(可自己扩展)
## **json 生成url**
比如统计报表,多表关联查询等场景。
数据库表模板生成json, 后台也是同样的实现方式。
用postman进行功能测试, 也可以用官网的autoapi
## **sql 生成url**
用于复杂统计,不愿意用apijson实现。
可以使用postman进行测试
后续如果有需要, json格式扩展实现@combine条件
## **Function 生成url**
function实现业务逻辑方法, 在线生成接口
新增远程函数
在线生成接口
调用
代码添加鉴权
如果想使用权限注解, 等我后面有空把若依注解扫描改造一下,目前若依 注解 只支持controller 方法。
添加按钮菜单权限
给需要的角色分配按钮权限
Function 参数校验等
参照json生成url。
将function函数生成独立url。
接口、数据库表操作鉴权
已经将apijson和若依鉴权认证完全打通, 通过菜单配置权限即可。
apijson鉴权配置参见:
## **数据操作人**
配置
场景
比如订单, 用户只能查询自己拥有的订单, 管理员在后管可以查询所有的订单
```
{
"id@-()": "getCurrentUserIdOrAdmin(id@-(),Ordermaster:rows[].Ordermaster.customerNo@)",
"Ordermaster:rows[]": {
"query": 2,
"page": 0,
"count": 10,
"Ordermaster": {
"customerNo@": "id",
"@column": "orderNo:orderNo,customerNo:customerNo,salerNo:salerNo,orderDate:orderDate,orderSum:orderSum,invoiceNo:invoiceNo,",
"@combine": "customerNo:1=1 & salerNo:1=1 & orderDate:1=1 & invoiceNo:1=1"
}
},
"total@": "/Ordermaster:rows[]/total",
"format": true,
"@explain": true
}
```
经测试,完全能实现, 普通用户查询自己的数据,管理员查询所有数据
## **假删除**
Access配置假删除的 deletedKey,deletedValue,notDeletedValue
框架会自动将delete语句转换为update,修改假删除字段的值。
