keys


URI

<myContent_uri>/keys[.<format>]

支持的方法

GETPOSTPUTDELETEHEAD

父资源

myContent

子资源

maxCountApplyInfos

介绍

keys 资源是当前用户添加的密钥(Key)集合。SuperMap iPortal 启用服务代理后,用户注册或托管的服务将受到保护,这些服务的权限也将得以控制。Key 用于访问 iPortal 中受保护的服务。

支持的方法:

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

资源层次

HTTP 请求方法

对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiportal 是服务器名。

http://supermapiportal:8190/web/mycontent/keys.rjson

GET 请求

获取当前用户添加的密钥(Key)集合。

请求参数

如果参数未设置,则返回用户添加的当前第一页中的密钥(Key)列表信息,设置参数后,会返回用户指定的密钥(Key)列表信息,请求参数必须包含在 URI 中。

名称 类型 含义
currentPage int 分页页码。
pageSize int 分页中每页大小。

响应结构

对 keys 资源执行 GET 请求,返回当前用户添加的密钥(Key)列表。由以下字段组成:

字段 类型 说明
content List<KeyInfo> 页面内容。
currentPage int 当前第几页。
pageSize int 每页大小。
searchParameter SearchParameter 当前页搜索参数。
total int 总记录数。
totalPage int 总页数。

响应示例

对 keys 资源:http://localhost:8190/web/mycontent/keys.rjson 执行 GET 请求,返回 rjson 格式的资源表述如下:

{

    "content": [

        {

            "limitation": "192.168.120.40",

            "serviceIds": "1,2",

            "clientType": "SERVER",

            "name": "app",

            "maxCountType": "DAY",

            "expiration": null,

            "id": 4,

            "keyType": "CUSTOM",

            "userName": "admin",

            "maxCount": 1410065408,

            "key": "ukQceZ3yKtBGsZF6um5dSuho",

            "usedCount": 0

        }

    ],

    "currentPage": 1,

    "pageSize": 10,

    "searchParameter": null,

    "total": 1,

    "totalPage": 1

}

POST 请求

添加新的密钥(Key)。

请求参数

发送请求时,需要在请求体中传递如下参数:

名称 类型 含义
id int 密钥的ID。
name String 密钥的名称。
clientType ClientType 允许访问服务的客户端类型,包括:WEB(浏览器端)、MOBILE(移动端)、SERVER(服务端)。
limitation String 允许访问服务的限制字符,不同客户端类型的限制不同。Web端:来源站点 referer;移动端:移动端应用的 ID;服务请求:请求源 IP 地址。
expiration Long 有效期至,当时间为空时,不限制有限期。
tags String 密钥的标签。
resources KeyResourceInfo 关联资源,包括:ids(资源类型)、type(资源类型)

响应结构

返回的资源表述结构如下:

字段 类型 说明
succeed boolean 修改密钥是否成功。
error Httperror 出错信息,如果修改密钥成功,则没有本字段。

响应示例

对 keys  资源:http://localhost:8190/iportal/web/mycontent/keys.rjson 执行 POST 请求,添加新的密钥,发送请求体如下:

{

    "id": null,

    "name": "app1",

    "clientType": "SERVER",

    "limitation": "192.168.120.40",

    "expiration": null,

    "tags": [],

    "resources": [

        {

            "ids": [

                2122882221

            ],

            "type": "SERVICE"

        }

    ]

}

注:还需要添加请求头Accept:application/vnd.supermap.iportal-v2+json

则返回的 rjson 格式响应结果如下:

{ "succeed": true}

PUT 请求

修改密钥(Key)的参数。

请求参数

对 keys 资源执行 PUT 请求,传递请求参数如下:

名称 类型 含义
id int 需要修改的密钥的 id。
name String 密钥的名称。
serviceIds String 允许访问的服务 ID 数组。
clientType ClientType 允许访问服务的客户端类型,包括:WEB(浏览器端)、MOBILE(移动端)、SERVER(服务端)。
limitation String 允许访问服务的限制字符,不同客户端类型的限制不同。Web端:来源站点 referer;移动端:移动端应用的 ID;服务请求:请求源 IP 地址。

响应结构

返回的响应结构如下:

字段 类型 说明
succeed boolean 修改密钥是否成功。
error Httperror 出错信息,如果修改密钥成功,则没有本字段。

响应示例

对 keys 资源:http://localhost:8190/web/mycontent/keys.rjson 执行 PUT 请求,修改密钥的参数信息,增加一个允许访问的服务,发送请求体如下:

{

    "id": 5,

    "name": "app1",

    "serviceIds": [

        1,

        2

    ],

    "clientType": "SERVER",

    "limitation": "192.168.120.40"

}

则返回的 rjson 格式的响应结果如下:

{ "succeed": true}

DELETE 请求

删除密钥,支持批量删除密钥(Key)。url 中传递需要删除密钥的 id 数组。

响应结构

返回的资源表述结构如下:

字段 类型 说明
succeed boolean 删除密钥是否成功。
error Httperror 出错信息,如果删除密钥成功,则没有本字段。

响应示例

对 keys 资源:http://localhost:8190/web/mycontent/keys.rjson?ids=[4,5] 执行 DELETE 请求,批量删除 id 为 4 和 5 的两个密钥,返回的 rjson 格式响应结果如下:

{ "succeed": true}

HEAD 请求

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

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

请参见