調(diào)用RPC API和RESTful API
阿里云云產(chǎn)品的API分為RPC和RESTful兩種類型,大部分產(chǎn)品使用的是RPC風(fēng)格。當(dāng)您使用阿里云CLI調(diào)用接口時(shí),不同風(fēng)格的API,調(diào)用方式不同。
判斷API風(fēng)格
調(diào)用產(chǎn)品接口時(shí),首先需要判斷API類型,選擇標(biāo)準(zhǔn)的命令結(jié)構(gòu)發(fā)起調(diào)用。您可以通過以下特點(diǎn)判斷API類型。
在產(chǎn)品后使用
--help
選項(xiàng)獲取幫助信息,RPC風(fēng)格API顯示簡(jiǎn)述,RESTful風(fēng)格API顯示訪問路徑PathPattern
。在
APIName
后使用--help
選項(xiàng)獲取幫助信息,RESTful風(fēng)格API會(huì)顯示API的請(qǐng)求方式Method
和訪問路徑PathPattern
。一般情況下,每個(gè)產(chǎn)品內(nèi)所有API的調(diào)用風(fēng)格是統(tǒng)一的。每個(gè)API僅支持特定的一種風(fēng)格,傳入錯(cuò)誤的標(biāo)識(shí),可能會(huì)調(diào)用到其他API,或收到
ApiNotFound
的錯(cuò)誤信息。
調(diào)用RPC API
命令結(jié)構(gòu)
在阿里云CLI中,調(diào)用RPC API時(shí),基本命令結(jié)構(gòu)如下。
aliyun <product> <APIName> [--parameter1 value1 --parameter2 value2 ...]
product
:需要調(diào)用的云產(chǎn)品code。例如云服務(wù)器ECS的產(chǎn)品code為ecs
。APIName
:需要調(diào)用的API。例如使用云服務(wù)器ECS的DescribeRegions
接口。--parameter
:需要傳入的請(qǐng)求參數(shù)。可在產(chǎn)品API文檔查看請(qǐng)求參數(shù)詳情。可使用
--help
選項(xiàng)獲取關(guān)于以上參數(shù)的幫助信息。詳情請(qǐng)參見獲取幫助信息。
命令示例
以云服務(wù)器ECS的API
DescribeRegions
為例。有關(guān)此API的更多信息,請(qǐng)參見DescribeRegions - 查詢可以使用的阿里云地域。aliyun ecs DescribeRegions
以云服務(wù)器ECS API
DescribeInstanceAttribute
為例。有關(guān)此API的更多信息,請(qǐng)參見DescribeInstanceAttribute - 查詢實(shí)例所有屬性信息。aliyun rds DescribeInstanceAttribute --InstanceId 'i-uf6f5trc95ug8t33****'
調(diào)用RESTful API
命令結(jié)構(gòu)
在阿里云CLI中,調(diào)用RESTful API時(shí),基本命令結(jié)構(gòu)如下。
aliyun <product> <Method> <PathPattern> --body <RequestBody>
product
:需要調(diào)用的云產(chǎn)品code。例如容器服務(wù)Kubernetes版的產(chǎn)品code為cs
。Method
:請(qǐng)求方式,常用請(qǐng)求方式有GET
、PUT
、POST
、DELETE
。根據(jù)API文檔選擇合適的請(qǐng)求方式。PathPattern
:請(qǐng)求路徑。根據(jù)產(chǎn)品API文檔選擇正確的請(qǐng)求路徑。RequestBody
:請(qǐng)求主體。根據(jù)產(chǎn)品API文檔編輯JSON字符串,或引用JSON格式文件。可使用
--help
選項(xiàng)獲取關(guān)于以上參數(shù)的幫助信息。詳情請(qǐng)參見獲取幫助信息。
命令示例
GET請(qǐng)求
以容器服務(wù) Kubernetes 版APIDescribeClusterDetail
為例。有關(guān)此API的更多信息,請(qǐng)參見DescribeClusterDetail - 查詢指定集群的信息。
aliyun cs GET /clusters/{cluster_id}
PUT請(qǐng)求
以容器服務(wù) Kubernetes 版APIModifyCluster
為例。有關(guān)此API的更多信息,請(qǐng)參見ModifyCluster - 修改集群配置。
aliyun cs PUT /api/v2/clusters/{ClusterId} --header "Content-Type=application/json" --body "$(cat input.json)"
POST請(qǐng)求
以容器服務(wù) Kubernetes 版APICreateCluster
為例。有關(guān)此API的更多信息,請(qǐng)參見CreateCluster - 創(chuàng)建集群。
aliyun cs POST /clusters --header "Content-Type=application/json" --body "$(cat create.json)"
DELETE請(qǐng)求
以容器服務(wù) Kubernetes 版APIDeleteClusterNodepool
為例。有關(guān)此API的更多信息,請(qǐng)參見DeleteClusterNodepool - 刪除節(jié)點(diǎn)池。
aliyun cs DELETE /clusters/{ClusterId}/nodepools/{NodepoolId}