数据源管理API
简介:数据源管理API
前置准备,请参考文档
常见参数说明
HOST:https://{envId}.ap-shanghai.tcb-api.tencentcloudapi.com
envType: 正式环境prod,体验环境pre
创建数据源记录
接口地址:/weda/odata/v1/{envType}/{datasourceName}
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
请求示例:
{
"name": "李四",
"course": "体育",
"score": 89,
"semester": "第二学期"
}
如果存在数组或者对象
{
"test_array": "[\"123\"]",
"test_object": "{\"key\":\"value\"}"
}
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg: xxx |
envType | 环境类型,pre预览环境,prod正式环境 | path | true | string | eg: prod或者pre |
datasourceName | 数据源标识 | path | true | eg: student_bky05o0 | |
创建记录对象 | 字段标识和字段值对象 | body | true | 创建记录对象 | eg:{"name":"李四","course":"体育","score":89,"semester":"第二学期"} |
响应状态:
状态码 | 说明 |
---|---|
201 | 创建成功 |
响应参数:
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
创建记录对象 | 字段标识和字段值对象 | 创建记录对象 | 字段标识:字段值 |
_id | 记录id | string |
响应示例:
{
"@odata.context": "$metadata#student_bky05o0",
"_id": "5b049cc8621c7f040ea751850b63e442",
"createdAt": 1646034692306,
"updatedAt": 1646034692306,
"owner": "1463080581028851713",
"createBy": "1463080581028851713",
"updateBy": "1463080581028851713",
"_departmentList": "[]",
"name": "李四",
"course": "体育",
"score": 89.0,
"semester": "第二学期"
}
更新数据源记录
接口地址:/weda/odata/v1/{envType}/{datasourceName}('{recordId}')
请求方式:PATCH
请求数据类型:application/json
响应数据类型:*/*
请求示例:
{
"name": "李四",
"course": "体育",
"score": 89,
"semester": "第二学期"
}
如果存在数组或者对象
{
"test_array": "[\"123\"]",
"test_object": "{\"key\":\"value\"}"
}
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg: xxx |
envType | 环境类型,pre预览环境,prod正式环境 | path | true | string | eg: prod 或者 pre |
datasourceName | 数据源标识 | path | true | eg: student_bky05o0 | |
recordId | 数据标识id | path | true | eg: 5b049cc8621c7f040ea751850b63e442 | |
更新记录对象 | 字段标识和字段值对象 | body | true | 更新记录对象 | eg: {"score":99} |
响应状态:
状态码 | 说明 |
---|---|
204 | 更新成功 |
响应参数:
暂无
查询数据源记录
接口地址:/weda/odata/v1/{envType}/{datasourceName}('{recordId}')
请求方式:GET
请求数据类型:application/json
响应数据类型:*/*
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg: xxx |
envType | 环境类型,pre预览环境,prod正式环境 | path | true | string | eg: prod 或者 pre |
datasourceName | 数据源标识 | path | true | eg: student_bky05o0 | |
recordId | 数据标识id | path | false | eg: 5b049cc8621c7f040ea751850b63e442 |
注意点:
- 如果不传recordId将会按照条件查询
- 如果没有任何条件将会默认查询10条数据
- 如果传入则会按照id查出一条数据
响应状态:
状态码 | 说明 |
---|---|
200 | 查询成功 |
响应参数:
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
记录对象 | 字段标识和字段值对象 | 记录对象 | 字段标识:字段值 |
_id | 记录id | string |
响应示例:
{
"@odata.context": "$metadata#student_bky05o0",
"_id": "5b049cc8621c7f040ea751850b63e442",
"createdAt": 1646034692306,
"updatedAt": 1646034692306,
"owner": "1463080581028851713",
"createBy": "1463080581028851713",
"updateBy": "1463080581028851713",
"_departmentList": "[]",
"name": "李四",
"course": "体育",
"score": 89.0,
"semester": "第二学期"
}
如果存在数组或者对象
{
"@odata.context": "$metadata#student_bky05o0",
"_id": "5b049cc8621c7f040ea751850b63eb92",
"createdAt": 1646034692311,
"updatedAt": 1646034692311,
"owner": "1463080581028851713",
"createBy": "1463080581028851713",
"updateBy": "1463080581028851713",
"_departmentList": "[]",
"name": "李四",
"course": "体育",
"score": 89.0,
"semester": "第二学期",
"test_array": "[\"123\"]",
"test_object": "{\"key\":\"value\"}"
}
根据filter查询数据源记录
接口地址:/weda/odata/v1/{envType}/{datasourceName}
请求方式:GET
请求数据类型:application/json
响应数据类型:*/*
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg: xxx |
envType | 环境类型,pre预览环境,prod正式环境 | path | true | string | eg: prod 或者 pre |
datasourceName | 数据源标识 | path | true | string | eg: student_bky05o0 |
$filter | 查询条件, $filter中判断条件包含: eq:等于, gt:大于, lt:小于, ge:大于等于, le:小于等于, ne:不等于, contains():包含, 其中 contains() 用法为 $filter=contains(name, '张'),注意:如果 or 和 and 并用,优先级高的需要加括号,用法为(age gt 1 and age lt 10) or age eq 20 | query | false | string | eg: $filter=contains(name,'张三') and name eq '张三' and score gt 60 |
$skip | 跳过N条记录 | query | false | integer | eg: $skip=0 |
$top | 查询N条记录 | query | false | integer | eg: $top=10 |
$orderby | 排序字段,$orderby 排序支持:desc和asc模式, 例如需要按某字段顺序排列$orderby=age asc | query | false | string | eg: orderby=score desc |
$count | 获取数据总数 | query | false | boolean | eg: $count=true |
$select | 需要查询的字段列表,用逗号分隔。默认查询所有字段 | query | false | boolean | eg: $select=_id,owner |
NotQueryRelateDepartment | 不去查询关联部门 | query | false | boolean | eg: NotQueryRelateDepartment=true |
ResultWithRelation | 查询关联关系数据。默认false | query | false | boolean | eg: ResultWithRelation=true |
注意点:
- 当您的查询不依赖_departmentList时候,可以将NotQueryRelateDepartment=true,可以大大加快查询速度。尤其是查询用户sys_user和部门sys_department相关表时。
- 可以使用$select来选择需要的字段,从而提升查询速度。在ResultWithRelation=true的情况下尤其要加上字段选择,否则可能会导致页面加载变慢。
响应状态:
状态码 | 说明 |
---|---|
200 | 查询成功 |
响应参数:
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
value | 字段标识和字段值对象列表 | array | 记录列表 |
响应示例:
{
"@odata.context": "$metadata#student_bky05o0",
"@odata.count": 1,
"value": [
{
"_id": "287a53aa61af01df00dc957a79c1ab3b",
"createdAt": 1638859231940,
"updatedAt": 1638859231940,
"owner": "1468105174530121729",
"createBy": "1468105174530121729",
"updateBy": "1468105174530121729",
"_departmentList": "[]",
"name": "二蛋",
"course": "语文",
"score": 77,
"semester": "第一学期"
}
]
}
如何使用不同条件Filter
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
$filter | 查询条件 | query | false | string | eg: zdbh eq '1000' |
eq/ne
对于字符串类型
示例:
https://lowcode-xxxx.ap-shanghai.tcb-api.tencentcloudapi.com/weda/odata/v1/pre/xxxx?$filter=zdbh eq '1000'
https://lowcode-xxxx.ap-shanghai.tcb-api.tencentcloudapi.com/weda/odata/v1/pre/xxxx?$filter=zdbh ne '1000'
对于数字类型
https://lowcode-xxxx.ap-shanghai.tcb-api.tencentcloudapi.com/weda/odata/v1/pre/xxxx?$filter=sz eq 34.23
对于布尔值类型
示例:
https://lowcode-xxxx.ap-shanghai.tcb-api.tencentcloudapi.com/weda/odata/v1/pre/xxxx?$filter=boolValue eq true
https://lowcode-xxxx.ap-shanghai.tcb-api.tencentcloudapi.com/weda/odata/v1/pre/xxxx?$filter=boolValue ne false
gt/lt/ge/le
对于数字类型
https://lowcode-xxxx.ap-shanghai.tcb-api.tencentcloudapi.com/weda/odata/v1/pre/xxxx?$filter=sz le 34.23
and/or
https://lowcode-xxxx.ap-shanghai.tcb-api.tencentcloudapi.com/weda/odata/v1/pre/xxxx?$filter=zdbh eq '1000' or zdbh eq '1101'
删除数据源记录
接口地址:/weda/odata/v1/{envType}/{datasourceName}('{recordId}')
请求方式:DELETE
请求数据类型:application/json
响应数据类型:*/*
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg: xxx |
envType | 环境类型,pre预览环境,prod正式环境 | path | true | string | eg: prod 或者 pre |
datasourceName | 数据源标识 | path | true | eg: student_bky05o0 | |
recordId | 数据标识id | path | true | eg: 287a53aa61af01df00dc957a79c1ab3b |
响应状态:
状态码 | 说明 |
---|---|
204 | 删除成功 |
响应参数:
暂无
批量创建数据源记录
接口地址:/weda/odata/v1/batch/{envType}/{datasourceName}
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
请求示例:
{
"value": [
{
"name": "二蛋",
"course": "语文",
"score": 77,
"semester": "第一学期"
}
]
}
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg: xxx |
envType | 环境类型,pre预览环境,prod正式环境 | path | true | string | eg:prod或者pre |
datasourceName | 数据源标识 | path | true | string | eg:student_bky05o0 |
value | 字段标识和字段值对象列表 | body | true | array | eg:{"value":[{"name":"李四","score":70,"semester":"第一学期"},{"name":"王五","score":88,"semester": "第一学期"}]} |
响应状态:
状态码 | 说明 |
---|---|
201 | 创建成功 |
响应参数:
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
value | 字段标识和字段值对象列表 | array | 记录列表 |
响应示例:
{
"@odata.context": "$metadata#student_bky05o0",
"value": [
{
"_id": "287a53aa61af01df00dc957a79c1ab3b",
"createdAt": 1638859231940,
"updatedAt": 1638859231940,
"owner": "1468105174530121729",
"createBy": "1468105174530121729",
"updateBy": "1468105174530121729",
"_departmentList": "[]",
"name": "李四",
"course": "语文",
"score": 70,
"semester": "第一学期"
}
]
}
根据ID批量更新数据源记录
接口地址:/weda/odata/v1/batch/{envType}/{datasourceName}('{recordIds}')
请求方式:PATCH
请求数据类型:application/json
响应数据类型:*/*
请求示例:
{
"name":"二蛋",
"course":"语文",
"score":77,
"semester":"第一学期"
}
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg:xxx |
envType | 环境类型,pre预览环境,prod正式环境 | path | true | string | eg:prod或者pre |
datasourceName | 数据源标识 | path | true | eg:student_bky05o0 | |
recordIds | 数据标识id | path | true | eg:('id1,id2') | |
批量更新对象 | 更新的数据 | body | true | eg:{"score":88} |
响应状态:
状态码 | 说明 |
---|---|
200 | 更新成功 |
响应参数:
参数名称 | 参数说明 | 类型 |
---|---|---|
updateCount | 修改记录数 | int |
响应示例:
{
"updateCount": N
}
根据ID批量查询数据源记录
接口地址:/weda/odata/v1/batch/{envType}/{datasourceName}('{recordIds}')
请求方式:GET
请求数据类型:application/json
响应数据类型:*/*
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg:xxx |
envType | 环境类型,pre预览环境,prod正式环境 | path | true | string | eg:prod或者pre |
datasourceName | 数据源标识 | path | true | eg:student_bky05o0 | |
recordIds | 数据标识id | path | true | eg:('id1,id2') |
响应状态:
状态码 | 说明 |
---|---|
200 | 查询成功 |
响应参数:
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
value | 字段标识和字段值对象列表 | array | 记录列表 |
响应示例:
{
"@odata.context": "$metadata#student_bky05o0",
"value": [
{
"_id": "287a53aa61af01df00dc957a79c1ab3b",
"createdAt": 1638859231940,
"updatedAt": 1638859231940,
"owner": "1468105174530121729",
"createBy": "1468105174530121729",
"updateBy": "1468105174530121729",
"_departmentList": "[]",
"name": "二蛋",
"course": "语文",
"score": 77,
"semester": "第一学期"
}
]
}
根据Filter批量查询数据源记录
接口地址:/weda/odata/v1/batch/{envType}/{datasourceName}
请求方式:GET
请求数据类型:application/json
响应数据类型:*/*
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg:xxx |
envType | 环境类型,pre预览环境,prod正式环境 | path | true | string | eg:prod或者pre |
datasourceName | 数据源标识 | path | true | string | eg:student_bky05o0 |
$filter | 查询条件, $filter中判断条件包含: eq:等于, gt:大于, lt:小于, ge:大于等于, le:小于等于, ne:不等于, contains():包含, 其中 contains() 用法为 $filter=contains(name, '张'),注意:如果 or 和 and 并用,优先级高的需要加括号,用法为(age gt 1 and age lt 10) or age eq 20 | query | false | eg: $filter=contains(name,'张三') and name eq '张三' and score gt 60 | |
$skip | 跳过N条记录 | query | false | eg: $skip=0 | |
$top | 查询N条记录 | query | false | eg: $top=10 | |
$orderby | 排序字段,$orderby 排序支持:desc和asc模式, 例如需要按某字段顺序排列$orderby=score asc | query | false | eg: $orderby=score desc | |
$count | 获取数据总数 | query | false | eg: $count=true |
响应状态:
状态码 | 说明 |
---|---|
200 | 查询成功 |
响应参数:
参数名称 | 参数说明 | 类型 | schema |
---|---|---|---|
value | 字段标识和字段值对象列表 | array | 记录列表 |
响应示例:
{
"@odata.context": "$metadata#student_bky05o0",
"@odata.count": 2,
"value": [
{
"_id": "287a53aa61af01df00dc957a79c1ab3b",
"createdAt": 1638859231940,
"updatedAt": 1638859231940,
"owner": "1468105174530121729",
"createBy": "1468105174530121729",
"updateBy": "1468105174530121729",
"_departmentList": "[]",
"name": "二蛋",
"course": "语文",
"score": 77,
"semester": "第一学期"
}
]
}
根据ID批量删除数据源记录
接口地址:/weda/odata/v1/batch/{envType}/{datasourceName}('{recordIds}')
请求方式:DELETE
请求数据类型:application/json
响应数据类型:*/*
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg:xxx |
envType | 环境类型,pre预览环境,prod正式环境 | path | true | string | eg:prod或者pre |
datasourceName | 数据源标识 | path | true | string | eg:student_bky05o0 |
recordIds | 数据标识id | path | true | array | eg:('id1,id2,id3') |
响应状态:
状态码 | 说明 |
---|---|
200 | 删除成功 |
响应参数:
参数名称 | 参数说明 | 类型 |
---|---|---|
deleteCount | 删除记录数 | integer |
响应示例:
{
"deleteCount": 3
}
查询环境下所有数据源Schema
接口地址:/weda/model/v1/getSchemaList
请求方式:GET
请求数据类型:application/json
响应数据类型:*/*
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg:xxx |
响应状态:
状态码 | 说明 | schema |
---|---|---|
200 | 查询成功 | 公共出参对象 |
响应参数:
参数名称 | 参数说明 | 类型 |
---|---|---|
QueryDataSourceSchemaResultList | 数据模型Schema数组 | array |
Id | 数据模型ID | string |
Name | 数据模型标识 | string |
Title | 数据模型标题 | string |
Schema | 数据模型Schema | string |
RequestId | 请求ID | string |
响应示例:
{
"Response":{
"Data":{
"QueryDataSourceSchemaResultList":[
{
"Id":"data-1P1UtRsJ2",
"Name":"sys_user",
"Title":"用户",
"Schema":"model schema"
}
],
"RequestId":"reqid"
}
}
}
查询数据源Schema
接口地址:/weda/model/v1/getSchemaList/{dataSourceName}
请求方式:GET
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | true | string | eg:xxx |
dataSourceName | 数据源标识 | path | true | string | eg:sys_user |
响应状态:
状态码 | 说明 | schema |
---|---|---|
200 | 查询成功 | 公共出参对象 |
响应参数:
参数名称 | 参数说明 | 类型 | |
---|---|---|---|
QueryDataSourceSchemaResultList | 数据模型Schema数组 | array | |
Id | 数据模型ID | string | |
Name | 数据模型标识 | string | |
Title | 数据模型标题 | string | |
Schema | 数据模型Schema | string | |
RequestId | 请求ID | string |
响应示例:
{
"Response":{
"Data":{
"QueryDataSourceSchemaResultList":[
{
"Id":"data-1P1UtRsJ2",
"Name":"sys_user",
"Title":"用户",
"Schema":"model schema"
}
],
"RequestId":"reqid"
}
}
}
查询选项集信息
接口地址:/weda/model/v1/describeOptionSet
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
根据选项集标识查询选项集具体信息
请求示例:
{
"optionSetNames": []
}
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | schema |
---|---|---|---|---|---|
查询选项集信息入参对象 | 查询选项集信息入参对象 | body | true | 查询选项集信息入参对象 | 查询选项集信息入参对象 |
optionSetNames | 选项集标识列表 | true | array |
响应状态:
状态码 | 说明 | schema |
---|---|---|
200 | OK | OpenApiServerResponse查询选项集信息出参对象 |
响应参数:
参数名称 | 参数说明 | 类型 |
---|---|---|
total | 选项集个数 | integer |
items | 选项集列表 | array |
name | 标识 | string |
title | 名称 | string |
description | 描述 | string |
envId | 所属环境 | string |
config | 选项集KV列表 | string |
data | 选项集kv映射结构 | object |
响应示例:
{
"response": {
"requestId": "",
"error": {
"code": "",
"message": ""
},
"data": {
"total": 1,
"items": [
{
"name": "gender",
"title": "性别",
"description": "性别信息描述",
"envId": "lowcode-a1b2c3",
"config": "[{\"key\":\"1\",\"value\":\"男\"},{\"key\":\"2\",\"value\":\"女\"}]",
"data": {"1":"男", "2":"女"}
}
]
}
}
}
查询数据模型信息
接口地址:/model/v1/describeDataSourceList
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
根据环境ID(模型ID或者模型NAME)查询当前环境数据模型
请求示例:
{
"PageNum":1,
"PageSize":10,
"IdList":[
"id1",
"id2"
],
"NameList":[
"name1",
"name2"
],
"QueryAll":false
}
请求参数:
参数名称 | 参数说明 | 请求类型 | 是否必须 | 数据类型 | 示例 |
---|---|---|---|---|---|
X-Request-Id | 请求requestId | header | 是 | string | eg:xxx |
PageNum | 页码 | body | 是 | int | eg:1 |
PageSize | 页大小 | body | 是 | int | eg:10 |
QueryAll | 是否查询当前环境下所有模型 | body | 否 | bool | eg:false |
IdList | 根据ID查询模型 | body | 否 | str list | eg:["id1","id2"] |
NameList | 根据Name查询模型 | body | 否 | str list | eg:["name1","name2"] |
响应状态:
状态码 | 说明 | schema |
---|---|---|
200 | OK | OpenApiServerResponse当前环境下数据模型 |
响应参数:
参数名称 | 参数说明 | 类型 |
---|---|---|
Total | 环境下模型总数 | integer |
requestId | 请求ID | string |
DataSourceList | 模型列表 | array |
Id | 数据源 ID | string |
Title | 数据源名称 | string |
Name | 数据源标识 | string |
Type | 数据源类型 | string |
SubType | 数据源子类型 | string |
Schema | 数据源字段配置 | string |
Methods | 方法集合 | string |
UpdateTime | 更新时间 | string |
Fun | 模型发布信息 | string |
响应示例:
{
"response": {
"requestId": "reqid",
"data": {
"DataSourceList": [
{
"Id": "模型ID",
"Title": "模型名称",
"Name": "模型标识",
"Type": "database",
"SubType": "database",
"Schema": "模型schema",
"Methods": "[]",
"UpdateTime": "2023-08-16T02:59:05",
"Fun": "模型发布信息"
}
],
"Total": N
}
}
}