
# 云服务API的body位置参数值如何置空？
对于云服务API的body位置的参数，KooCLI支持在任意层级置空：
- 若当前层级的值实际类型为map，则置空时参数值应为"{}"。
- 若当前层级的值实际类型为数组，则置空时参数值应为"\[\]"。
以云服务"ECS"的operation"BatchStopServers"为例，其body位置存在参数"os-stop.servers.\[N\].id"和"os-stop.type"，如下：
```
hcloud ECS BatchStopServers --cli-region=cn-north-4 --help
KooCLI(Koo Command Line Interface) Version 3.2.8 Copyright(C) 2020-2023 www.huaweicloud.com
Service:
  ECS
Description:
  根据给定的云服务器ID列表,批量关闭云服务器,一次最多可以关闭1000台。
Method:
  POST
Params:
  --cli-region
    required    string  当前可调用的区域.若命令中未输入,将使用当前配置项中的cli-region
  --os-stop.servers.[N].id
    required    string  body    云服务器ID。格式为:--os-stop.servers.1.id=value1 ...
  --project_id
    required    string  path    项目ID。若命令中未输入,将根据认证信息获取指定区域的父级项目ID,或使用当前配置项中的cli-project-id
  --os-stop.type
    optional    string  body    关机类型,默认为SOFT:。[SOFT|HARD]
    - SOFT:普通关机(默认)。
    - HARD:强制关机。
```
- 不置空：
  给参数"os-stop.servers.\[N\].id"和"os-stop.type"分别传入参数值，使用"--dryrun"查看请求body体内容，如下：
  ```
  hcloud ECS BatchStopServers --cli-region=cn-north-4 --os-stop.servers.1.id="test" --os-stop.type="SOFT" --dryrun
  --------------------------------- dry-run模式跳过实际运行,当前请求为: ---------------------------------
  POST https://ecs.cn-north-4.myhuaweicloud.com/v1/0a152ab****************262d035e8/cloudservers/action
  Content-Type: application/json;charset=UTF-8
  X-Project-Id: 0a152ab****************262d035e8
  X-Sdk-Date: 20221116T121721Z
  Authorization: ****
  {
    "os-stop": {
      "servers": [
        {
          "id": "test"
        }
      ],
      "type": "SOFT"
    }
  }
  ```
  
- 数组类型参数置空：
  若将参数"os-stop.servers.\[N\].id"的数组（即"\[N\]"及其之后的内容）置空，因"os-stop.servers"指向的值实际类型为数组，故可传入参数"--os-stop.servers="\[\]""，使用"--dryrun"查看请求body体内容，如下：
  ```
  hcloud ECS BatchStopServers --cli-region=cn-north-4 --os-stop.servers="[]" --os-stop.type="SOFT" --dryrun
  --------------------------------- dry-run模式跳过实际运行,当前请求为: ---------------------------------
  POST https://ecs.cn-north-4.myhuaweicloud.com/v1/0a152ab****************262d035e8/cloudservers/action
  X-Project-Id: 0a152ab****************262d035e8
  X-Sdk-Date: 20221116T122841Z
  Authorization: ****
  Content-Type: application/json;charset=UTF-8
  {
    "os-stop": {
      "servers": [],
      "type": "SOFT"
    }
  }
  ```
  
- map类型参数置空：
  若将参数"os-stop.servers.\[N\].id"和"os-stop.type"的共有的父级"os-stop"置空，因其指向的值实际类型为map，故可传入参数"--os-stop="{}""，使用"--dryrun"查看请求body体内容，如下：
  ```
  hcloud ECS BatchStopServers --cli-region=cn-north-4 --os-stop="{}" --dryrun
  --------------------------------- dry-run模式跳过实际运行,当前请求为: ---------------------------------
  POST https://ecs.cn-north-4.myhuaweicloud.com/v1/0a152ab****************262d035e8/cloudservers/action
  Content-Type: application/json;charset=UTF-8
  X-Project-Id: 0a152ab****************262d035e8
  X-Sdk-Date: 20221117T013616Z
  Authorization: ****
  {
    "os-stop": {}
  }
  ```
  
KooCLI执行过程中会校验参数值是否匹配，若将不适合的空值传给参数，会提醒错误信息。例如给实际为map类型的参数"os-stop"赋值数组类型的空值"\[\]"，则提示如下错误：
\[USE_ERROR\]map类型参数os-stop的值不正确
