datasource


URI

  1. <datasources_uri>/name/{datasourceName}[.<format>]
  2. <datasources_uri>/index/{datasourceIndex}[.<format>]
  3. <datasources_uri>/{datasourceName}[.<format>]
  4. <datasources_uri>/{datasourceIndex}[.<format>]

支持的方法

GETPUTHEAD

父资源

datasources

子资源

datasets

介绍

 

datasource 资源表示一个数据源,可以提供数据源的信息,并提供访问该数据源所包含的数据集(即它的子资源)的入口。通过对 datasource 资源执行 PUT 请求,可以修改数据源信息。通过 datasource 资源可以获取的数据源信息包括数据源名称、数据源描述、引擎类型、距离单位、坐标单位、投影信息等,可以修改的数据源信息包括:数据源描述、坐标单位、距离单位等。

datasource  资源对应的 URI 有四种。如上 URI 所示:URI1 是通过/name/{datasourceName},即用"/name"标签加上数据源名称来标识数据源,数据源名称可以是中文;URI2 是通过 /index/{datasourceIndex},即用“/index”标签加上数据源索引号来标识数据源;URI3 是通过/{datasourceName},即直接用数据源名称来标识数据源,数据源名称可以是中文;URI4 是通过 /{datasourceIndex},即直接用数据源索引号来标识数据源。datasource 优先使用 datasourceName 匹配资源。

 

支持的方法:

支持的表述格式:RJSON、JSON、HTML、XML。

资源层次

根资源 data datasources.htm datasource.htm

HTTP 请求方法

对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名,World 服务器上的一个数据源的名称。

http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World.rjson

GET 请求

获取数据源信息,以及数据源中数据集的信息列表。

请求参数

无。

响应结构

对  datasource 资源执行 GET 请求,返回的资源表述的结构如下(资源表述在响应消息的实体主体里):  

字段 类型 说明
datasourceInfo DatasourceInfo 包含的数据源的数据源名称,数据源描述,引擎类型,投影信息,坐标单位,距离坐标等信息 。
childUriList List<String> 子资源,即 datasets 资源的访问 URI 列表。

其中 datasourceInfo 字段表示的就是数据源的信息,datasourceInfo 的结构可参见 Javadoc 文档中 DatasourceInfo 类型的描述,这里为了清晰起见,把 datasourceInfo 字段(即数据源信息)的结构列表如下:

字段 类型 说明
coordUnit Unit 坐标单位。
description String 数据源描述。
distanceUnit Unit 距离单位。
engineType EngineType 数据源引擎类型,该字段只读。
name String 数据源的别名。别名用于在工作空间中唯一标识数据源,该字段只读。
prjCoordSys PrjCoordSys 投影信息。

示例

对示例 datasource 资源:http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World.rjson 执行 GET 请求,返回 rjson 格式的表述如下:

{

    "childUriList": ["http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World/datasets"],

    "datasourceInfo": {

        "coordUnit": "DEGREE",

        "description": "",

        "distanceUnit": "METER",

        "engineType": "UDB",

        "name": "World",

        "prjCoordSys": {

            "coordSystem": {

                "datum": {

                    "name": "D_WGS_1984",

                    "spheroid": {

                        "axis": 6378137,

                        "flatten": 0.0033528107,

                        "name": "WGS_1984",

                        "type": "SPHEROID_WGS_1984"

                    },

                    "type": "DATUM_WGS_1984"

                },

                "name": "GCS_WGS_1984",

                "primeMeridian": {

                    "longitudeValue": 0,

                    "name": "Greenwich",

                    "type": "PRIMEMERIDIAN_GREENWICH"

                },

                "spatialRefType": "SPATIALREF_EARTH_LONGITUDE_LATITUDE",

                "type": "GCS_WGS_1984",

                "unit": "DEGREE"

            },

            "coordUnit": "DEGREE",

            "distanceUnit": "METER",

            "epsgCode": 1,

            "name": "Longitude / Latitude Coordinate System---GCS_WGS_1984",

            "projection": null,

            "projectionParam": null,

            "type": "PCS_EARTH_LONGITUDE_LATITUDE"

        }

    }

}

PUT 请求

修改数据源信息。

请求参数

对 datasource 资源执行 PUT 请求,对数据源信息进行修改,需要在请求体中包含以下参数:

名称 类型 含义
description String 数据源描述信息。
coordUnit Unit 坐标单位。
distanceUnit Unit 距离单位。

响应结构

对 datasource 资源执行 PUT 请求,返回的操作结果表述的结构如下(表述在响应消息的实体主体里):  

字段 类型 说明
succeed boolean 数据源信息的修改是否成功。
error HttpError 出错信息,如果操作成功,则没有本字段。

示例

对示例 datasource 资源:http://supermapiserver:8090/iserver/services/data-world/rest/data/datasources/name/World.rjson 执行参数如下的 PUT 请求:

{"coordUnit":"MILE","description":"This is a new description","distanceUnit":"MILE"}

修改 World 数据源成功的情况下,返回 rjson 格式的表述如下:

{"succeed": true}

HEAD 请求

返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。

HEAD 请求可以用来判断 datasource 资源是否存在,或者客户端是否有权限访问 datasource 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 datasource 资源是否支持<format>格式的表述。

请参见