
# 查询模块树形列表 - ShowIpdModules
#### 功能介绍
分页查询项目下模块树形结构，支持按关键字模糊搜索、排序及分页。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-projectman/projectman_api_1002.html)。
#### 授权信息
当前API调用无需身份策略权限。
#### URI
GET /v1/ipdprojectservice/projects/{project_id}/modules/tree
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释**： 项目32位ID，项目唯一标识。通过[查询IPD项目列表](https://support.huaweicloud.com/api-projectman/ShowIpdProjectList.html)获取，响应消息体中的**id**字段的值就是项目ID。 **约束限制**： 不涉及。 **取值范围**： 32个字符，由英文字母和数字组成。 **默认取值**： 不涉及。 |
   
表2Query参数 
| 参数        | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| key_word  | 否    | String  | **参数解释**： 模块名称关键字，用于模糊搜索模块。 **约束限制**： 不涉及。 **取值范围**： 最大128个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| sort      | 否    | String  | **参数解释**： 排序字段，默认为创建时间降序，即最新创建的排在最前面。 **约束限制**： 不涉及。 **取值范围**： - display_value：按模块名称排序   - description：按描述排序   - assignee：按负责人排序   - created_date：按创建时间排序    **默认取值**： created_date |
| sort_type | 否    | String  | **参数解释**： 排序方式，与sort字段配合使用，仅当传入sort时生效。 **约束限制**： 当传入sort时，sort_type才会生效。 **取值范围**： - asc：升序   - desc：降序    **默认取值**： desc                                                                                                                                                                                                                                                                                                          |
| offset    | 否    | Integer | **参数解释**： 分页起始位置，从0开始，需为limit的整数倍。 **约束限制**： 取值为limit的倍数。 **取值范围**： 0\~350 **默认取值**： 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| limit     | 否    | Integer | **参数解释**： 每页返回的模块数量。 **约束限制**： 不涉及。 **取值范围**： 1\~100 **默认取值**： 10                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
#### 请求参数
无
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数      | 参数类型                                                                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| result  | [ModuleListResult] object | **参数解释**： 模块树形列表查询结果。 **取值范围**： 不涉及。                                                                                                                                                                                                                                                                                                                         |
| status  | String                                                                | **参数解释**： 响应状态标识。 **取值范围**： - success：查询模块树形列表成功。   - error：查询模块树形列表失败。    |
| message | String                                                                | **参数解释**： 错误信息。 **取值范围**： 最大1024个字符。                                                                                                                                                                                                                                                                                                                         |
   
 表4ModuleListResult 
| 参数      | 参数类型                                                                    | 描述                                                                                                                                                          |
|:---|:---|:---|
| modules | Array of [ModuleEntity] objects | **参数解释**： 模块列表，每个模块为一个ModuleEntity对象。                                                                                     |
| total   | Integer                                                                 | **参数解释**： 模块总数，项目下模块最多允许350个（包含子模块）。 **取值范围**： 0\~350 |
   
 表5ModuleEntity 
| 参数            | 参数类型                                                                    | 描述                                                                                                                                                                 |
|:---|:---|:---|
| id            | String                                                                  | **参数解释**： 模块唯一标识ID。 **取值范围**： 18\~19个字符的数字字符串。               |
| sequence      | String                                                                  | **参数解释**： 模块顺序值，用于排序，double类型字符串。 **取值范围**： 不涉及              |
| level         | Integer                                                                 | **参数解释**： 模块层级深度。 **取值范围**： 1\~3                             |
| description   | String                                                                  | **参数解释**： 模块描述信息。 **取值范围**： 最大10000个字符。                      |
| created_by    | String                                                                  | **参数解释**： 模块创建人ID。 **取值范围**： 32个字符。                          |
| created_time  | String                                                                  | **参数解释**： 模块创建时间，unix时间戳，单位：毫秒。 **取值范围**： 13\~19个字符的数字字符串。   |
| modified_by   | String                                                                  | **参数解释**： 模块最近修改人ID。 **取值范围**： 32个字符。                        |
| modified_time | String                                                                  | **参数解释**： 模块最近修改时间，unix时间戳，单位：毫秒。 **取值范围**： 13\~19个字符的数字字符串。 |
| display_value | String                                                                  | **参数解释**： 模块显示名称。 **取值范围**： 2\~256个字符。                       |
| path_name     | String                                                                  | **参数解释**： 子模块的完整路径名称，由各级模块名称用"/"拼接而成。 **取值范围**： 最大769个字符。    |
| value         | String                                                                  | **参数解释**： 模块唯一标识，自定义模块的value和id相同。 **取值范围**： 最大32个字符。        |
| parent_id     | String                                                                  | **参数解释**： 父模块ID。 **取值范围**： 18\~19个字符的数字字符串。                  |
| child_modules | Array of [ModuleEntity] objects | **参数解释**： 子模块列表，每个子模块也是一个ModuleEntity对象。                                                                                         |
| assignee      | String                                                                  | **参数解释**： 模块责任人ID。 **取值范围**： 32个字符。                          |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                    |
|:---|:---|:---|
| error_code | String | **参数解释**： 错误码。 **取值范围**： 不涉及。                   |
| error_msg  | String | **参数解释**： 错误描述，对error_code的补充解释。 **取值范围**： 不涉及。 |
   
#### 请求示例
```
GET https://{endpoint}/v1/ipdprojectservice/projects/336ad84c67ea4783b2edc1bb5a112da0/modules/tree?offset=0&limit=20&sort_type=asc
```
#### 响应示例
**状态码：200**
OK
```
{
  "status" : "success",
  "message" : null,
  "result" : {
    "modules" : [ {
      "id" : "958663834527117312",
      "sequence" : "1.0",
      "level" : 1,
      "description" : "aaaa",
      "created_by" : "a360371833bf4c558f796fd707b44daf",
      "created_time" : "1706492869000",
      "modified_by" : "a360371833bf4c558f796fd707b44daf",
      "modified_time" : "1706492869000",
      "display_value" : "模块A",
      "path_name" : "模块A",
      "value" : "958663834527117312",
      "child_modules" : [ {
        "id" : "958663880396025857",
        "sequence" : "1.0",
        "level" : 2,
        "description" : "aaa1",
        "created_by" : "a360371833bf4c558f796fd707b44daf",
        "created_time" : "1706492880000",
        "modified_by" : "a360371833bf4c558f796fd707b44daf",
        "modified_time" : "1706492880000",
        "display_value" : "模块A-1",
        "path_name" : "模块A/模块A-1",
        "value" : "958663880396025857",
        "parent_id" : "958663834527117312",
        "child_modules" : [ {
          "id" : "958663903372423168",
          "sequence" : "1.0",
          "level" : 3,
          "description" : "",
          "created_by" : "a360371833bf4c558f796fd707b44daf",
          "created_time" : "1706492885000",
          "modified_by" : "a360371833bf4c558f796fd707b44daf",
          "modified_time" : "1706492885000",
          "display_value" : "模块A-1-1",
          "path_name" : "模块A/模块A-1/模块A-1-1",
          "value" : "958663903372423168",
          "parent_id" : "958663880396025857",
          "assignee" : "a360371833bf4c558f796fd707b44daf"
        } ],
        "assignee" : "a360371833bf4c558f796fd707b44daf"
      } ],
      "assignee" : "a360371833bf4c558f796fd707b44daf"
    } ],
    "total" : 1
  }
}
```
**状态码：400**
错误信息
```
{
  "error_code" : "PM.02174103",
  "error_msg" : "分页参数错误"
}
```
#### 状态码
| 状态码 | 描述   |
|:---|:---|
| 200 | OK   |
| 400 | 错误信息 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-projectman/ErrorCode.html)。
