directories


URI

<portal_uri>/directories[.<format>]

支持的方法

GETPOSTDELETEHEAD

父资源

portal

子资源

dirNameVerifydirectorydirsResourcesdirsWeightmoveDirectory

介绍

directories 资源是目录资源管理器。所有用户(包含匿名用户)通过发送 GET 请求,可以获取所有根目录以及根目录下的目录结构列表信息;管理员(确保处于登录状态)通过发送 POST 请求,可以创建一个目录;管理员(确保处于登录状态)通过发送 DELETE 请求,可以批量删除根目录结构列表信息。

支持的方法:

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

资源层次

HTTP 请求方法

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

http://supermapiportal:8190/iportal/web/directories.rjson

GET 请求

获取根目录结构列表信息。

请求参数

如果参数未设置,则返回所有的目录结构列表信息,设置参数后,会返回用户指定的目录列表信息,请求参数必须包含在 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

}

POST 请求

创建新的目录。

请求参数

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

名称 类型 含义

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"

}

DELETE 请求

删除目录,支持批量删除目录。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}

HEAD 请求

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

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

请参见