# 数据库接入服务
数据库接入服务提供各种类型的外部数据库的接入功能,支持的数据库种类有PostgreSQL、MySQL(暂未开放)、SQL Server(暂未开放)。
# 获取数据库列表
接口说明:
获取用户接入的外部数据库列表。
接口地址:
GET {API_URL}/databases/v1/{owner}
请求示例:
curl -X GET "{API_URL}/databases/v1/jingsam"
响应示例:
[
{
"databaseId": "mydb",
"owner": "jingsam",
"name": "mydb",
"tags": [],
"metadata": {},
"type": "postgres"
},
{
"databaseId": "iuwKjzfoR",
"owner": "jingsam",
"name": "landcloud",
"tags": [],
"metadata": {},
"type": "mysql"
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 获取外部数据库
接口说明:
获取某个外部数据库的基础信息和连接参数。
除了基础属性,返回的连接参数包含以下字段:
字段名 | 说明 |
---|---|
type | 外部数据库的类型,取值为postgres、mysql或mssql |
host | 外部数据库的主机位置 |
port | 外部数据库的端口 |
database | 外部数据库的实例 |
username | 外部数据库的用户名 |
为了保护外部数据库的安全,响应中不会包含数据库的密码。
接口地址:
GET {API_URL}/databases/v1/{owner}/{databaseId}
请求示例:
curl -X GET "{API_URL}/databases/v1/jingsam/mydb"
响应示例:
{
"databaseId": "mydb",
"owner": "jingsam",
"name": "mydb",
"tags": [],
"metadata": {},
"type": "postgres",
"host":"127.0.0.1",
"port":5432,
"database":"mydb"
}
2
3
4
5
6
7
8
9
10
11
# 新建外部数据库
接口说明
新建一个外部数据库连接。
新建时,必须提供以下参数:
字段名 | 说明 |
---|---|
type | 外部数据库的类型,取值为postgres、mysql或mssql |
host | 外部数据库的主机位置 |
port | 外部数据库的端口 |
database | 外部数据库的实例 |
username | 外部数据库的用户名 |
password | 外部数据库的密码 |
系统会生成一个随机的databaseId
,若需要使用特定的databaseId
新建外部数据库,建议使用替换外部数据库方法。
系统只会从外部数据库中读取数据,不会修改或删除数据,但是为了进一步确保外部数据库的数据安全性,建议使用仅具有只读权限的用户接入系统。
接口地址
POST {API_URL}/databases/v1/{owner}
请求示例:
curl -X POST "{API_URL}/databases/v1/jingsam" <br /> --header "Content-Type: applocation/json" <br /> --data '{ "name": "mydb", "type": "postgres", "host":"127.0.0.1", "port":5432, "database":"mydb", "username": "postgres","password": "123456" }'
响应示例:
{
"databaseId": "sfs43fr",
"owner": "jingsam",
"name": "mydb",
"tags": [],
"metadata": {},
"type": "postgres",
"host":"127.0.0.1",
"port":5432,
"database":"mydb"
}
2
3
4
5
6
7
8
9
10
11
# 替换外部数据库
接口说明
替换某个外部数据库连接。
替换时,必须提供以下参数:
字段名 | 说明 |
---|---|
type | 外部数据库的类型,取值为postgres、mysql或mssql |
host | 外部数据库的主机位置 |
port | 外部数据库的端口 |
database | 外部数据库的实例 |
username | 外部数据库的用户名 |
password | 外部数据库的密码 |
如果系统中已存在databaseId
的外部数据库,则会替换已有的外部数据库;若不存在,则会在新建该外部数据库的连接。
接口地址
PUT {API_URL}/databases/v1/{owner}/{databaseId}
请求示例:
curl -X PUT "{API_URL}/databases/v1/jingsam/mydb" <br /> --header "Content-Type: applocation/json" <br /> --data '{ "name": "mydb", "type": "postgres", "host":"127.0.0.1", "port":5432, "database":"mydb", "username": "postgres","password": "123456" }'
响应示例:
{
"databaseId": "mydb",
"owner": "jingsam",
"name": "mydb",
"tags": [],
"metadata": {},
"type": "postgres",
"host":"127.0.0.1",
"port":5432,
"database":"mydb"
}
2
3
4
5
6
7
8
9
10
11
# 更新外部数据库
接口说明
更新一个已有的外部数据库,可更新外部数据库的基础属性和连接参数。
由于技术上的限制,外部数据库的类型字段type
无法更改。
接口地址
PATCH {API_URL}/databases/v1/{owner}/{databaseId}
请求示例:
curl -X PATCH "{API_URL}/databases/v1/jingsam/mydb" <br /> --header "Content-Type: applocation/json" <br /> --data '{"password": "654321"}'
响应示例:
{
"databaseId": "mydb",
"owner": "jingsam",
"name": "mydb",
"tags": [],
"metadata": {},
"type": "postgres",
"host":"127.0.0.1",
"port":5432,
"database":"mydb"
}
2
3
4
5
6
7
8
9
10
11
# 删除外部数据库
接口说明
删除一个已有的外部数据库
接口地址
DELETE {API_URL}/databases/v1/{owner}/{databaseId}
请求示例:
curl -X DELETE "{API_URL}/databases/v1/jingsam/mydb"
响应示例:
204 // HTTP status code
# 获取外部数据库的表
接口说明
获取外部数据库的所有库表,包括表和视图。
库表含以下字段:
字段名 | 说明 |
---|---|
schema | 表所属的模式 |
name | 表名 |
type | 表的类型,取值有BASE TABLE (表)、 VIEW (视图) |
接口地址
GET {API_URL}/databases/v1/{owner}/{databaseId}/tables
请求示例:
curl -X GET "{API_URL}/databases/v1/jingsam/mydb/tables"
响应示例:
[
{
"schema": "public",
"name": "t1",
"type": "BASE TABLE"
},
{
"schema": "public",
"name": "t2",
"type": "VIEW"
}
]
2
3
4
5
6
7
8
9
10
11
12
# 测试外部数据库连接参数
接口说明
测试是否能够成功连接到外部数据库。
接口地址
POST {API_URL}/databases/v1
请求示例:
curl -X POST "{API_URL}/databases/v1" <br /> --header "Content-Type: applocation/json" <br /> --data '{"type": "postgres", "host": "127.0.0.1", "port": 5432, "database": "postgres", "username": "postgres", "password": "123456"}'
响应示例:
204 // HTTP status code
# 专题地图服务
专题地图服务提供专题地图的管理。
# 获取专题地图列表
接口说明
获取用户的专题地图列表。
接口地址
GET {API_URL}/maps/v1/{owner}
请求示例:
curl -X GET "{API_URL}/maps/v1/jingsam"
响应示例:
[
{
"mapId": "heatmap",
"owner": "jingsam",
"name": "热力图",
"description": "人口热力图"
},
{
"mapId": "iuwKjzfoR",
"owner": "jingsam"
}
]
2
3
4
5
6
7
8
9
10
11
12
# 获取专题地图
接口说明
获取某个专题地图。
除了基础属性,专题地图还包含以下字段:
字段名 | 说明 |
---|---|
center (可选) | 地图默认的中心经度和纬度 |
zoom (可选) | 地图默认的缩放级别 |
bearing (可选) | 地图默认的偏角 |
pitch (可选) | 地图默认的倾角 |
basemap | 地图的基础底图 |
layers | 地图的图层配置信息 |
接口地址
GET {API_URL}/maps/v1/{owner}/{mapId}
请求示例:
curl -X GET "{API_URL}/maps/v1/jingsam/heatmap"
响应示例:
{
"mapId": "heatmap",
"owner": "jingsam",
"name": "热力图",
"description": "人口热力图",
"basemap": {...},
"layers": [...]
}
2
3
4
5
6
7
8
# 新建专题地图
接口说明
新建一个专题地图,可基于提供的专题地图模板新建,否则将新建一个空的专题地图。
系统会生成一个随机的mapId
,若需要使用特定的mapId
新建专题地图,建议使用替换专题地图方法。
接口地址
POST {API_URL}/maps/v1/{owner}
请求示例:
curl -X POST "{API_URL}/maps/v1/jingsam" <br /> --header "Content-Type: applocation/json" <br /> --data '{ "name": "热力图", "description": "人口热力图" }'
响应示例:
{
"mapId": "js0BTsjLr",
"owner": "jingsam",
"name": "热力图",
"description": "人口热力图",
"basemap": {},
"layers": []
}
2
3
4
5
6
7
8
# 替换专题地图
接口说明
替换某个专题地图,可基于提供的专题地图模板替换,否则将替换为一个空的专题地图。
若该mapId
的专题地图在系统中已存在,则会覆盖已有的专题地图;若不存在,则在系统中新建专题地图。
接口地址
PUT {API_URL}/maps/v1/{owner}/{mapId}
请求示例:
curl -X PUT "{API_URL}/maps/v1/jingsam/heatmap" <br /> --header "Content-Type: applocation/json" <br /> --data '{ "name": "热力图", "description": "人口热力图" }'
响应示例:
{
"mapId": "heatmap",
"owner": "jingsam",
"name": "热力图",
"description": "人口热力图",
"basemap": {},
"layers": []
}
2
3
4
5
6
7
8
# 更新专题地图
接口说明
更新某个专题地图,更新时需提供该专题地图需修改的字段信息。
更新专题地图只是对专题地图的部分字段进行更新,如果需要进行覆盖式更新,请使用替换专题地图方法。
接口地址
PATCH {API_URL}/maps/v1/{owner}/{mapId}
请求示例:
curl -X PATCH "{API_URL}/maps/v1/jingsam/heatmap" <br /> --header "Content-Type: applocation/json" <br /> --data '{ "name": "热力图2", "description": "人口热力图2" }'
响应示例:
{
"mapId": "heatmap",
"owner": "jingsam",
"name": "热力图2",
"description": "人口热力图2",
"basemap": {},
"layers": []
}
2
3
4
5
6
7
8
# 删除专题地图
接口说明
删除某个专题地图。
接口地址
DELETE {API_URL}/maps/v1/{owner}/{mapId}
请求示例:
curl -X DELETE "{API_URL}/maps/v1/jingsam/heatmap"
响应示例:
204 // HTTP status code (No Content)
# 预览专题地图
接口说明
提供一个HTML页面,用于查看地图效果。
接口地址
GET {API_URL}/maps/v1/{owner}/{mapId}/html
请求示例:
curl -X GET "{API_URL}/maps/v1/jingsam/heatmap/html"
响应示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>热力图</title>
...
</head>
<body>
...
</body>
</html>
2
3
4
5
6
7
8
9
10
11
# 可视化场景服务
可视化场景服务提供可视化场景配置文件的管理,包括配置文件的新建、获取、更新、删除等操作。可视化场景配置文件定义了可视化场景的画布大小、背景、可视化组件的数据和样式。
# 获取可视化场景列表
接口说明
获取用户的可视化场景列表。
接口地址
GET {API_URL}/scenes/v1/{owner}
请求示例:
curl -X GET "{API_URL}/scenes/v1/jingsam"
响应示例:
[
{
"sceneId": "buildings",
"owner": "jingsam",
"name": "Buildings",
"description": "3D Buildings",
"tags": ["3D"],
"metadata": {
"locked": "true"
},
"thumbnail": "{API_URL}/assets/v1/jingsam/a.png/thumbnail"
},
{
"sceneId": "T38CFliqe",
"owner": "jingsam",
"tags": [],
"metadata": {},
"thumbnail": "{API_URL}/assets/v1/jingsam/b.png/thumbnail"
}
]
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 获取可视化场景
接口说明
获取某个可视化场景。
除了基础属性,可视化场景还包含以下字段:
字段名 | 说明 |
---|---|
thumbnail | 可视化场景的缩略图URL |
width | 可视化场景的画布宽度,单位为像素 |
height | 可视化场景的画布高度,单位为像素 |
scale | 可视化场景的自适应缩放方法 |
background | 可视化场景的背景配置 |
components | 可视化场景的组件配置 |
接口地址
GET {API_URL}/scenes/v1/{owner}/{sceneId}
请求示例:
curl -X GET "{API_URL}/scenes/v1/jingsam/buildings"
响应示例:
{
"sceneId": "buildings",
"owner": "jingsam",
"name": "Buildings",
"description": "3D Buildings",
"tags": [ "3D" ],
"metadata": {},
"thumbnail": "{API_URL}/assets/v1/jingsam/a.png/thumbnail",
"width": 1920,
"height": 1080,
"scale": "scaleX",
"background": {...},
"components": [ {...} ]
}
2
3
4
5
6
7
8
9
10
11
12
13
14
# 新建可视化场景
接口说明
新建一个可视化场景,可在请求中提供一个可视化场景作为模板新建,否则将新建一个空的可视化场景。
系统会生成一个随机的sceneId
,若需要使用特定的sceneId
新建可视化场景,建议使用替换可视化场景方法。
接口地址
POST {API_URL}/scenes/v1/{owner}
请求示例:
curl -X POST "{API_URL}/scenes/v1/jingsam" <br /> --header "Content-Type: applocation/json" <br /> --data '{ "name": "Buildings", "tags":["3D"] }'
响应示例:
{
"sceneId": "T38CFliqe",
"owner": "jingsam",
"name": "Buildings",
"tags": [ "3D" ],
"metadata": {},
"components": []
}
2
3
4
5
6
7
8
# 替换可视化场景
接口说明
新建或替换某个可视化场景,可在请求中提供一个可视化场景作为模板新建或替换,若未提供可视化场景则生成一个空的可视化场景。
若该sceneId
的可视化场景在系统中已存在,则会覆盖已有的可视化场景;若不存在,则在系统中新建可视化场景。
接口地址
PUT {API_URL}/scenes/v1/{owner}/{sceneId}
请求示例:
curl -X PUT "{API_URL}/scenes/v1/jingsam/buildings" <br /> --header "Content-Type: applocation/json" <br /> --data '{ "name": "Buildings", "tags":[ "3D" ] }'
响应示例:
{
"sceneId": "buildings",
"owner": "jingsam",
"name": "Buildings",
"tags": [ "3D" ],
"metadata": {},
"components": []
}
2
3
4
5
6
7
8
# 更新可视化场景
接口说明
更新某个可视化场景,更新时可提供该可视化场景需修改的字段信息。
更新可视化场景只是对可视化场景的部分字段进行更新,如果需要进行覆盖式更新,请使用替换可视化场景方法。
如需更新可视化场景的thumbnail
字段,建议使用Assets API上传一个图片,以该图片的缩略图URL作为thumbnail
字段的值。
接口地址
PATCH {API_URL}/scenes/v1/{owner}/{sceneId}
请求示例:
curl -X PATCH "{API_URL}/scenes/v1/jingsam/buildings" <br /> --header "Content-Type: applocation/json" <br /> --data '{ "name": "Buildings2", "tags": [ "3D", "house" ] }'
响应示例:
{
"sceneId": "buildings",
"owner": "jingsam",
"name": "Buildings2",
"tags": [ "3D", "house" ],
"metadata": {},
"components": []
}
2
3
4
5
6
7
8
# 删除可视化场景
接口说明
删除某个可视化场景。
接口地址
DELETE {API_URL}/scenes/v1/{owner}/{sceneId}
请求示例:
curl -X DELETE "{API_URL}/scenes/v1/jingsam/buildings"
响应示例:
204 // HTTP status code (No Content)
# 预览场景
接口说明
提供一个HTML页面,用于查看场景效果。
请求示例:
curl -X GET "{API_URL}/scenes/v1/jingsam/buildings"
响应示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Buildings</title>
...
</head>
<body>
...
</body>
</html>
2
3
4
5
6
7
8
9
10
11