跳转到主要内容

datart通过自定义视图查询数据源数据

一、 功能概述

该功能可以实现动态注册数据源,自定义SQL就可以通过统一接口查询数据。减少开发工作量,提高效率。

二、注册数据源

注册数据源如下图。 微信图片_20231207143758.png

注意:连接地址,一定要设置utf8编码,不然中文查询不出来,示例: jdbc:mysql://121.37.7.167:33314/数据库名?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true

三、添加数据视图

数据视图-新建数据视图-SQL 视图,进入编写要查询数据库的SQL 微信图片_20231207144517.png

1.先选择数据源

2.编写查询SQL

3.执行SQL

4.保存视图

5.将数据视图关掉,重新进入,地址栏可以看到视图id 微信图片_20231207153849.png

四、调用接口查询数据

1.获取TOKEN

(1)接口地址:[POST] https://{url}/api/v1/users/login

(2)Body 请求参数:

{
"username": "wangbo", //用户名
"password": "admin@2023!" //密码
}

(3)响应头Authorization中获取token 微信图片_20231207160706.png

2.获取视图数据

(1)接口地址: [POST] https://{url}/api/v1/data-provider/view

(2)Header 请求参数

参数名 参数值 是否必填 参数类型 参数说明
Authorization Bearer eyJhbGciOiJIUzI1xxxxx string token

(3)Body 请求参数

{
	"page": 1,//当前页
	"limit": 20,//每页条数
	"viewId": "a961d8dc8af4496aad3dfe71d9668416",//视图id
	"filters": [  //查询条件,接口执行时会拼在sql语句的where部分
		{
			"column": [  //字段名字
				"create_date"
			],
			"sqlOperator": "GT",  //运算符(EQ:等于,NE:不等于,GTE:大于等于,LTE:小于等于,LT:小于,GT:大于)
			"values": [
				{
					"value": "2023-06-08",  //参数值
					"valueType": "DATE"  //参数类型
				}
			]
		}
	]
}

(4)响应示例

{
	"data": {  //返回数据
		"list": [  返回数据列表,字段由查询数据决定
			{
				"request_time": 154,
				"ip": "127.0.0.1",
				"id": 1667084925162176513,
				"request_method": "POST",
				"create_date": "2023-06-09 16:23:14",
				"operation": "保存",
				"request_uri": "/renren-admin/kong/kongapp/save",
				"status": 0
			}
		],
		"page": 1,   //当前页
		"limit": 20,  //每页面条数
		"total": 56   //总条数
	},
	"errCode": 0,
	"message": null,
	"success": true  //是否成功
}

五、自定义视图变量

(1)添加变量 微信图片_20231207163845.png

(2)变量使用,变量格式:$变量名称$,使用如下:

select 
    *
from sys_log_operation where create_date between $START_DATE$ and $END_DATE$

(3)接口调用时添加参数

{
	"page": 1,//当前页
	"limit": 20,//每页条数
	"viewId": "a961d8dc8af4496aad3dfe71d9668416",//视图id
	"params": {  //视图自定义变量
		"START_DATE": [  //变量名称
			"2023-06-12"  //变量值
		],
		"END_DATE": [
			"2023-06-13"
		]
	}
}