
# 查询空间列表
#### 功能介绍
应用服务器可调用此接口查询空间列表。
需要注意：
- 通过填写字段parent_id以查询指定父级空间的子级空间节点。
  
- 如果不填写parent_id字段，则该字段将被置为null。
  
 
#### URI
GET /v1/iotfm/zones
表1Query参数 
| 参数        | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| parent_id | 否    | String  | **参数说明**：父级空间ID。如不填写该参数，则默认返回首层空间列表。 **取值范围**：长度固定24，只允许大小写字母、数字的组合。                                                                                                                                                                               |
| zone_name | 否    | String  | **参数说明**：空间名，支持模糊查询，为空查询满足其他条件的空间列表。 **取值范围**：长度1-256。                                                                                                                                                                                            |
| code      | 否    | String  | **参数说明**：空间编码，实例级唯一。 **取值范围**：长度为1-32，只允许大小写字母、数字、#、_、.和-的组合。                                                                                                                                                                                      |
| limit     | 否    | Integer | **参数说明**：分页查询时每页显示的记录数。 **取值范围**：默认值为10，取值范围为1-50的整数。                                                                                                                                                                                             |
| marker    | 否    | String  | **参数说明**：上一次分页查询结果中最后一条记录的ID，在上一次分页查询时由物联网平台返回获得。分页查询时物联网平台是按marker也就是记录ID降序查询的，越新的数据记录ID也会越大。若填写marker，则本次只查询记录ID小于marker的数据记录。若不填写，则从记录ID最大也就是最新的一条数据开始查询。如果需要依次查询所有数据，则每次查询时必须填写上一次查询响应中的marker值。 **取值范围**：长度固定24，只允许大小写字母、数组的组合。              |
| offset    | 否    | Integer | **参数说明**：表示从marker后偏移offset条记录开始查询。当offset为0时，表示从marker后第一条记录开始输出。限制offset最大值是出于API性能考虑，您可以搭配marker使用该参数实现翻页，例如每页50条记录，1-11页内都可以直接使用offset跳转到指定页，但到11页后，由于offset限制为500，您需要使用第11页返回的marker作为下次查询的marker，以实现翻页到12-22页。 **取值范围**：默认为0，取值范围为0-500的整数。 |
   
#### 请求参数
表2请求Header参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                                                                              |
|:---|:---|:---|:---|
| X-Auth-Token   | 是    | String | **参数说明** ：用户Token。通过调用 [生成Token](https://support.huaweicloud.com/api-ocsmartcampus/ocsmartcampus_06_0008.html) 接口获取，接口返回的响应消息头中"X-Subject-Token"就是需要获取的用户Token。 |
| X-Instance-Id  | 是    | String | **参数说明**：实例ID。通过访问智能设施云平台界面后获取，智能设施云平台资源均为实例级隔离，所有业务接口必须填写正确的实例ID才能被成功调用。 **取值范围**：长度8-36，只允许大小写字母、数字和-字符的组合。            |
| X-Root-Zone-Id | 否    | String | **参数说明**：项目ID。 **取值范围**：长度不超过24，只允许字母、数字的组合。                                                                              |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数    | 参数类型                                                                                                | 描述                                      |
|:---|:---|:---|
| zones | Array of [ZoneItem] objects | 空间列表                                    |
| page  | [Page] object                   | 查询批量分页结构体，定义了分页页码、每页记录数、记录总数、该页记录的最大ID。 |
   
 表4ZoneItem 
| 参数              | 参数类型                                                                                                              | 描述                                                                                                              |
|:---|:---|:---|
| id              | String                                                                                                            | **参数说明**：空间ID。 **取值范围**：长度固定24，只允许大小写字母、数字的组合。                          |
| definition_code | String                                                                                                            | **参数说明**：空间规格定义编码。 **取值范围**：长度0-256，只允许大小字母、数字以及_-字符的组合。                 |
| code            | String                                                                                                            | **参数说明**：空间编码。可由用户指定，实例级唯一。 **取值范围**：长度为1-32，只允许大小写字母、数字、#、_、.和-的组合。    |
| name            | String                                                                                                            | **参数说明**：名称。 **取值范围**：长度2-256。                                           |
| description     | String                                                                                                            | **参数说明**：空间描述。如果不填，表示不修改。 **取值范围**：长度0-1024。                            |
| parent_id       | String                                                                                                            | **参数说明**：父级空间ID。 **取值范围**：长度固定24，只允许大小写字母、数字的组合。                         |
| time_zone       | String                                                                                                            | **参数说明**：空间所属的时区。格式为UTC±hh:mm。                                                                                  |
| area            | Integer                                                                                                           | **参数说明**：面积（m²）。单位是平方米。如果不填，表示不修改。 **取值范围**：数字类型，值范围是1-100000000（1亿平方米）。 |
| base_location   | String                                                                                                            | **参数说明**：详细地址信息。如果不填，表示不修改。 **取值范围**：长度0-256。                          |
| country         | String                                                                                                            | **参数说明**：国家/地区。当前只支持"中国"，其他不支持。如果不填，表示不修改。 **取值范围**：长度1-256。            |
| province        | String                                                                                                            | **参数说明**：省份。当前只支持中国行政空间，其他不支持。如果不填，表示不修改。 **取值范围**：长度1-256。               |
| city            | String                                                                                                            | **参数说明**：城市。当前只支持中国行政空间，其他不支持。如果不填，表示不修改。 **取值范围**：长度1-256。             |
| county          | String                                                                                                            | **参数说明**：区县。当前只支持中国行政空间，其他不支持。如果不填，表示不修改。 **取值范围**：长度1-256。              |
| city_code       | String                                                                                                            | **参数说明**：城市编码。根据中国行政空间为每个区县级定义的唯一编码，当前只支持中国行政空间，其他不支持。 **取值范围**：长度1-32。 |
| children_count  | Integer                                                                                                           | **参数说明**：直接下级数量。 **取值范围**：大小为0-100。                                     |
| properties      | Map\<String,String\>                                                                                              | **参数说明**：属性键值对，json格式。属性是在自定义空间规格里面定义的。 **取值范围**：每个值要满足自定义空间规格属性的范围要求。   |
| path            | Array of [ZonePathItemDto] objects | 从根到当前节点的路径，不包含当前节点。                                                                                             |
| create_time     | String                                                                                                            | **参数说明**：创建时间，格式为：yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。 **取值范围**：大小为0-20。       |
   
 表5ZonePathItemDto 
| 参数    | 参数类型    | 描述                                                         |
|:---|:---|:---|
| id    | String  | 空间ID                                                       |
| name  | String  | 空间名称                                                       |
| depth | Integer | 空间层级，从顶层空间到当前节点的深度，顶层空间深度为1，按层级别依次递增。如depth为2，则代表本空间为第二层级。 |
   
 表6Page 
| 参数     | 参数类型   | 描述                                                                                                |
|:---|:---|:---|
| count  | Long   | **参数说明**：本次分页查询结果中，获取的记录总数。                                                                       |
| marker | String | **参数说明**：本次分页查询结果中最后一条记录的ID，可在下一次分页查询时使用。 **取值范围**：长度0-64。 |
   
**状态码：400**
表7响应Body参数 
| 参数         | 参数类型   | 描述                                                                     |
|:---|:---|:---|
| error_code | String | **参数说明**：错误码。 **取值范围**：长度8-36。 |
| error_msg  | String | **参数说明**：错误描述。 **取值范围**：长度2-512。 |
   
#### 请求示例
- 查询空间列表
  ```
  GET https://{endpoint}/v1/iotfm/zones
  ```
  
- 查询空间列表（非首层空间）
  ```
  GET https://{endpoint}/v1/iotfm/zones?parent_id=18bcc7baf6a059c46a81d186
  ```
  
 
#### 响应示例
**状态码：200**
OK
```
{
  "zones" : [ {
    "id" : "18bcc7baf6a059c46a81d186",
    "parent_id" : "a0ed5ea25c3cc3d328f61af50fc9452a",
    "definition_code" : "custom-sub-zone",
    "code" : "5c8ba99030344005c02316ad",
    "name" : "MyZone",
    "description" : "深圳园区1栋",
    "time_zone" : "UTC+08:00",
    "area" : 1000000,
    "base_location" : "深圳市龙岗区坂田街道1栋",
    "country" : "中国",
    "province" : "广东省",
    "city" : "深圳市",
    "county" : "龙岗区",
    "city_code" : "285130",
    "children_count" : 2,
    "properties" : {
      "status" : "运营中"
    },
    "create_time" : "2023-11-14T06:18:59.818Z"
  } ],
  "page" : {
    "count" : 1,
    "marker" : "18baf6a81d1866a059c4bcc7"
  }
}
```
#### 状态码
| 状态码 | 描述             |
|:---|:---|
| 200 | OK             |
| 400 | Error response |
   
