<myContent_uri>/keys[.<format>]
keys 资源是当前用户添加的密钥(Key)集合。SuperMap iPortal 启用服务代理后,用户注册或托管的服务将受到保护,这些服务的权限也将得以控制。Key 用于访问 iPortal 中受保护的服务。
支持的方法:
支持的表述格式:RJSON、JSON、HTML、XML。
对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiportal 是服务器名。
http://supermapiportal:8190/web/mycontent/keys.rjson
获取当前用户添加的密钥(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
}
添加新的密钥(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}
修改密钥(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}
删除密钥,支持批量删除密钥(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}
返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。
HEAD 请求可以用来判断 keys 资源是否存在,或者客户端是否有权限访问 keys 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 keys 资源是否支持<format>格式的表述。