<datasource_uri>/datasets[.<format>]
datasets 资源表示一个数据源中的所有数据集的集合。通过对 datasets 资源执行 POST 请求,还可以创建一个隶属于 <datasource_uri> 数据源的数据集,包括点/线/面数据集、文本数据集、复合数据集和纯属性数据集的创建,创建数据集有设置数据集信息、复制现有数据集两种方式。
支持的方法:
支持的表述格式:RJSON、JSON、HTML、XML。
对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名,World 是服务器上的一个数据源。
http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets.rjson
获取数据源中的所有数据集信息。即数据集信息集合。
无。
对 datasets 资源执行 GET 请求,返回的是数据源中的所有数据集信息,资源表述的结构如下:
字段 | 类型 | 说明 |
datasetCount | int | 数据源中,数据集的个数。 |
datasetNames | List<String> | 数据集的名称列表。 |
childUriList | List<String> | 数据集的访问路径(即 dataset 资源的 URI)列表。 |
对示例 datasets 资源:http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets.rjson 执行 GET 请求,返回 rjson 格式的资源描述如下:
{
"childUriList": [
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Ocean",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/CountryLabel",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/OceanBoundary",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/ContinentBoundary",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/CountryBoundary",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Lakes",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Capitals",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/ContinentLabel",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Grids",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/OceanLabel",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Rivers",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/OceanLabelP_C",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/OceanLabelP_E",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Countries",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/test",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Day",
"http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/Night"
],
"datasetCount": 17,
"datasetNames": [
"Ocean",
"CountryLabel",
"OceanBoundary",
"ContinentBoundary",
"CountryBoundary",
"Lakes",
"Capitals",
"ContinentLabel",
"Grids",
"OceanLabel",
"Rivers",
"OceanLabelP_C",
"OceanLabelP_E",
"Countries",
"test",
"Day",
"Night"
]
}
在数据源中创建一个新的数据集,创建方式有设置数据集信息、复制现有数据集两种。
为执行 POST 请求来创建一个新的数据集,POST 请求体中必须包含一些参数,如果参数合法,SuperMap iServer 服务器会根据这些参数,在数据源中创建一个新数据集。
根据创建数据集方式的不同,在请求体中传输的参数也不同,通过设置数据集名和数据集类型来创建新的数据集,需要传入的参数如下:
名称 | 类型 | 含义 |
datasetName | String | 数据集名称。 |
datasetType | DatasetType | 数据集类型。目前支持六种枚举值:POINT、LINE、REGION、TEXT、CAD、TABULAR。 |
通过复制数据集的方式创建新的数据集,需要传入的参数如下:
名称 | 类型 | 含义 |
srcDatasourceName | String | 源数据源名称,默认为本数据源,如果源数据源与本数据源不在同一个工作空间,则操作失败。 |
srcDatasetName | String | 源数据集名称。 |
destDatasetName | String | 要创建的目标数据集名称。 |
注意:当 POST 请求体中,两种参数都完整包含的情况下,优先按照第一种,即设置数据集名和数据类型的方式来创建新的数据集。
对 datasets 资源执行 POST 请求,创建一个新的数据集,返回的操作结果的表述结构如下:
字段 | 类型 | 说明 |
succeed | boolean | 创建数据集是否成功。 |
newResourceID | String | 新创建的数据集资源的 ID。 |
newResourceLoaction | String | 新创建的数据集资源的 URI。 |
error | HttpError | 出错信息,如果创建成功,则没有本字段。 |
对示例 datasets 资源:http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets.rjson 执行参数如下的 POST 请求,采用设置数据集信息的方式创建新的数据集:
{"datasetType":"POINT","datasetName":"RestCreate"}
操作成功时,返回 rjson 格式的操作结果表述如下:
{
"newResourceID": "/name/RestCreate",
"newResourceLocation": "http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets/name/RestCreate.rjson",
"succeed": true
}
返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。
HEAD 请求可以用来判断 datasets 资源是否存在,或者客户端是否有权限访问 datasets 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 datasets 资源是否支持<format>格式的表述。