
# 如何指定云服务的API和版本号？
#### **问题背景**
KooCLI调用云服务API的过程中，会对您输入参数的合法性进行校验。若您当前调用的云服务是多版本服务，即意味着该服务中的部分或全部API有多个版本。因同一API不同版本的参数、使用场景等可能存在差异，故需获取多版本服务API的版本信息。
#### **云服务API的版本查询与指定**
- 版本查询 您可以通过"hcloud \<service\> --help"命令，查看该云服务的operation列表。若在查询结果的"Available Operations"中某operation出现多次，且以"/"拼接了不同的版本号，则调用该API时需要指定其版本信息，方法请参考[版本指定]。其余在该云服务operation列表中只出现了一次的operation不必拼接版本号，KooCLI默认调用其唯一版本。
  
- 版本指定
  - 手动添加版本信息 当调用多版本服务的API时，您可以手动在原API的operation后以"/"拼接版本信息。例如：若原命令中operation为"showLogs"，"Available Operations"列表中存在"showLogs/v1"和"showLogs/v2"，您可根据需要将原命令中的operation修改为"showLogs/v1"或"showLogs/v2"。
    
  
  - 使用默认版本信息
    当调用多版本服务的API时，若您未在命令中指明其版本信息，KooCLI会在运行过程中获取该API可选的所有版本，将其按字母排序，并默认调用其排序后的最后一个版本（一般认为该版本即是该API的最新版本）。
    
   
 
#### **扩展问题** **及其解决方案**
- 扩展问题 当您[使用默认版本信息]的方式调用多版本云服务的API时，若您本地缓存的元数据文件被修改，可能会导致KooCLI在执行过程中无法根据缓存文件正确解析到该API的版本信息。在此情形下，会提示如下错误：
  \[USE_ERROR\]服务为多版本,请指定API版本号
  

- 解决方案 如遇如上情形，您可通过执行"hcloud meta clear"命令清理当前的元数据缓存文件后，重新调用。
  
 
