更新时间:2023-10-16 GMT+08:00
云服务API的body位置参数值如何置空?
对于云服务API的body位置的参数,KooCLI支持在任意层级置空:
- 若当前层级的值实际类型为map,则置空时参数值应为“{}”。
- 若当前层级的值实际类型为数组,则置空时参数值应为“[]”。
以云服务“ECS”的operation“BatchStopServers”为例,其body位置存在参数“os-stop.servers.[N].id”和“os-stop.type”,如下:
hcloud ECS BatchStopServers --cli-region=ap-southeast-1 --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=ap-southeast-1 --os-stop.servers.1.id="test" --os-stop.type="SOFT" --dryrun --------------------------------- dry-run模式跳过实际运行,当前请求为: --------------------------------- POST https://ecs.ap-southeast-1.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=ap-southeast-1 --os-stop.servers="[]" --os-stop.type="SOFT" --dryrun --------------------------------- dry-run模式跳过实际运行,当前请求为: --------------------------------- POST https://ecs.ap-southeast-1.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=ap-southeast-1 --os-stop="{}" --dryrun --------------------------------- dry-run模式跳过实际运行,当前请求为: --------------------------------- POST https://ecs.ap-southeast-1.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的值不正确
父主题: 参数相关