<portal_uri>/directories[.<format>]
dirNameVerify、directory、dirsResources、dirsWeight、moveDirectory
directories 资源是目录资源管理器。所有用户(包含匿名用户)通过发送 GET 请求,可以获取所有根目录以及根目录下的目录结构列表信息;管理员(确保处于登录状态)通过发送 POST 请求,可以创建一个目录;管理员(确保处于登录状态)通过发送 DELETE 请求,可以批量删除根目录结构列表信息。
支持的方法:
支持的表述格式:RJSON、JSON、HTML、XML。
对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiportal 是服务器名。
http://supermapiportal:8190/iportal/web/directories.rjson
获取根目录结构列表信息。
如果参数未设置,则返回所有的目录结构列表信息,设置参数后,会返回用户指定的目录列表信息,请求参数必须包含在 URI 中。
名称 | 类型 | 含义 |
dirLevel | Integer | 根据目录级别过滤。例如:"dirLevel": 1,表示根目录。 |
parentDirId | Integer | 根据父目录的 id 过滤。 |
dirType | DirectoryResourceType | 根据目录类型过滤。如 MAP、SERVICE、SCENE。 |
orderBy | DirOrderBy | 根据目录的排序状态过滤。如 CREATETIME,目录的创建时间;UPDATETIME,目录的更新时间。 |
对 directories 资源执行 GET 请求,返回所有的根目录结构列表信息,由以下字段组成:
字段 | 类型 | 说明 |
content | List<BasicDirInfo> | 页面内容。 |
currentPage | int | 当前第几页。 |
pageSize | int | 每页大小。 |
searchParameter | SearchParameter | 当前页搜索参数。 |
total | int | 总记录数。 |
totalPage | int | 总页数。 |
对 directories 资源:http://localhost:8190/iportal/web/directories.rjson 执行 GET 请求,默认获取所有根目录结构列表信息,返回 rjson 格式的资源表述如下:
{
"content": [
{
"createTime": 1433125809626,
"description": null,
"dirCreator": "admin",
"dirLevel": 1,
"dirName": "人口分布",
"dirType": "MAP",
"icon": null,
"id": 28,
"parentDirId": null,
"updateTime": 1433125809626
},
{
"createTime": 1433125819024,
"description": null,
"dirCreator": "admin",
"dirLevel": 2,
"dirName": "2014年",
"dirType": "MAP",
"icon": null,
"id": 29,
"parentDirId": 28,
"updateTime": 1433125819024
},
{
"createTime": 1433125875649,
"description": null,
"dirCreator": "admin",
"dirLevel": 2,
"dirName": "2015年",
"dirType": "MAP",
"icon": null,
"id": 30,
"parentDirId": 28,
"updateTime": 1433126268099
},
{
"createTime": 1433126361703,
"description": null,
"dirCreator": "admin",
"dirLevel": 1,
"dirName": "新建目录",
"dirType": "SERVICE",
"icon": null,
"id": 31,
"parentDirId": null,
"updateTime": 1433126361703
}
],
"currentPage": 1,
"pageSize": 0,
"searchParameter": null,
"total": 4,
"totalPage": 0
}
如果希望获取指定的目录结构列表信息,如根据目录的类型和目录的级别过滤,则需要设置 dirType=MAP&dirLevel=1,即对 directories 资源:http://localhost:8190/iportal/web/directories.rjson?dirType=MAP&dirLevel=1 执行 GET 请求,获取目录类型为 MAP 和目录级别为1的所有目录结构列表信息,返回 rjson 格式的资源表述如下:
{
"content": [
{
"createTime": 1433125809626,
"description": null,
"dirCreator": "admin",
"dirLevel": 1,
"dirName": "人口分布",
"dirType": "MAP",
"icon": null,
"id": 28,
"parentDirId": null,
"updateTime": 1433125809626
}
],
"currentPage": 1,
"pageSize": 0,
"searchParameter": null,
"total": 1,
"totalPage": 0
}
创建新的目录。
发送请求时,需要在请求体中传递如下参数:
名称 | 类型 | 含义 |
dirName |
String | 【必选参数】
目录名称。 |
dirType | DirectoryResourceType | 目录类型。当创建根目录时是必选参数;当创建子目录时是可选参数,如果值为空 null 或不传该参数,会默认与它的父目录是相同的目录类型。 |
icon | String | 【可选参数】
目录的图标。可以为空值:null 或者不传该参数。为空值或者不传该参数:表示不上传目录图标,采用默认的图标。 |
description | String | 【可选参数】
目录的描述信息。可以为空值:null 或者不传该参数。 |
parentDirId | Integer | 父目录的 id。当创建子目录时是必选参数;当创建根目录时可为空值 null,也可以不传递该参数。 |
返回的资源表述结构如下:
字段 | 类型 | 说明 |
newResourceID | String | 创建新目录的 id。 |
newResourceLocation | String | 创建新目录的 URI。 |
succeed | boolean | 创建新目录是否成功。 |
对 directories 资源:http://localhost:8190/iportal/web/directories.rjson 执行 POST 请求,创建新的根目录,目录类型为 MAP,目录名称为:土地利用。发送请求体如下:
{
"dirName": "土地利用",
"dirType": "MAP"
}
则返回的 rjson 格式响应结果如下:
{
"succeed": true,
"newResourceID": "32",
"newResourceLocation": "http://192.168.120.50:3230/iportal/web/directories/32"
}
如果希望在根目录“土地利用”下面创建一个子目录“2014年”,则对 directories 资源:http://localhost:8190/iportal/web/directories.rjson 执行 POST 请求,发送请求体如下:
{
"parentDirId":"32",
"dirType": "MAP",
"dirName": "2014年"
}
则返回的 rjson 格式响应结果如下:
{
"succeed": true,
"newResourceID": "33",
"newResourceLocation": "http://192.168.120.50:3230/iportal/web/directories/33"
}
删除目录,支持批量删除目录。url 中传递需要删除目录以及删除目录下资源的实体类 DeleteDirOrResSetting,该实体类中包含以下几个字段:
字段 | 类型 | 说明 |
ids | List<Integer> | 目录的 id 集合。如果传递的是父目录的 id,那将删除父目录以及父目录下的所有子目录和资源。 |
resourceIds | List<Integer> | 目录下资源的 id 集合。 |
parentDirId | Integer | 父目录 id。当删除父目录下的子目录或资源时,需传递该参数。 |
isDeleteResources | boolean | 是否从门户中删除资源。其中,False 表示从该目录中移除资源,true 表示从门户中删除该目录中的资源。 |
返回的资源表述结构如下:
字段 | 类型 | 说明 |
succeed | boolean | 删除目录是否成功。 |
error | Httperror | 出错信息,如果删除目录成功,则没有本字段。 |
删除目录会有以下四种情况,下面分别举例说明:
第一种情况:删除多个根目录,并移除这些目录下的资源
对 directories 资源:http://localhost/iportal/web/directories.rjson?deleteDirOrResSetting={ids:[2,3],isDeleteResources:false} 执行 DELETE 请求,批量删除根目录 id 为 2 和 3 的所有目录列表信息,并且从删除的目录中移除资源,返回的 rjson 格式响应结果如下:
{ "succeed": true}
第二种情况:删除父目录下的子目录,并移除子目录下的资源
对 directories 资源:http://localhost/iportal/web/directories.rjson?deleteDirOrResSetting={ids:[2,3],parentDirId:6,isDeleteResources:false} 执行 DELETE 请求,批量删除父目录 id 为6下的子目录 id 为 2和3的所有目录列表信息,并且从删除的目录中移除资源,返回的 rjson 格式响应结果如下:
{ "succeed": true}
第三种情况:移除目录下的资源
对 directories 资源:http://localhost/iportal/web/directories.rjson?deleteDirOrResSetting={resourceIds:[10,11],parentDirId:11,isDeleteResources:false} 执行 DELETE 请求,批量移除父目录 id 为11下的资源 id 为 10和11的所有资源信息,返回的 rjson 格式响应结果如下:
{ "succeed": true}
第四种情况:删除父目录下的子目录,并移除该父目录下的资源以及子目录下的资源
对 directories 资源:http://localhost/iportal/web/directories.rjson?deleteDirOrResSetting={ids:[8,10],resourceIds:[10,11],parentDirId:11,isDeleteResources:false} 执行 DELETE 请求,批量删除 id 为11的父目录下的 id 为8和9的子目录并移除子目录下的资源,以及该父目录下的资源 id 为 10和11的所有资源信息,返回的 rjson 格式响应结果如下:
{ "succeed": true}
返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。
HEAD 请求可以用来判断 directories 资源是否存在,或者客户端是否有权限访问 directories 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 directories 资源是否支持<format>格式的表述。