Rewrite call method

This commit is contained in:
Zhong Lufan
2022-06-20 00:10:44 +08:00
parent c952f1c372
commit c928752bbb
3 changed files with 91 additions and 136 deletions

View File

@@ -1,13 +1,10 @@
# Aliyun OpenAPI Shell SDK
# Aliyun OpenAPI Bash SDK
这是一个非官方的阿里云 OpenAPI Shell SDK方便 Shell 脚本调用阿里云 OpenAPISDK 主要实现了自动计算 OpenAPI 的请求签名。
虽然阿里云官方有 [AliyunCLI](https://github.com/aliyun/aliyun-cli),可以在 Shell 环境下使用阿里云 OpenAPI但是并不支持某些 API (比如 SSL 证书)。
对于存储空间有限的嵌入式设备Shell SDK 可能是更好的选择。
这是一个非官方的阿里云 OpenAPI Bash SDK方便 Bash 脚本调用阿里云 OpenAPISDK 主要实现了自动计算 OpenAPI 的请求签名。
理论上支持所有阿里云 RPC OpenAPI暂不支持 RESTful OpenAPI将来可能会支持。
> 这可能是最好用的 Aliyun OpenAPI Shell SDK
> 这可能是最好用的 Aliyun OpenAPI Bash SDK
## 依赖
@@ -25,11 +22,10 @@
```bash
# Output: JsonString
# Retrun Code: 0 = HTTP_STATUS_CODE == 200 | 1 = HTTP_STATUS_CODE != 200
aliapi_rpc <host> <http_method> <api_version> <api_action> [api_custom_key] [api_custom_value]
# api_custom_key 和 api_custom_value 可以省略,但不允许只传递其中一个。
aliapi_rpc <http_method> <host> <api_version> <api_action> [<--key> <value>...]
```
PS: `AliyunOpenApiSDK.sh` 支持独立执行,参数与函数参数一致。
PS: `AliyunOpenApiSDK.sh` 支持作为脚本独立执行,脚本参数与函数参数一致。
**示例:**
@@ -43,29 +39,17 @@ export AliAccessKeySecret="<AliAccessKeySecret>"
# 导入 SDK
source AliyunOpenApiSDK.sh
# 自定义请求参数的键值数组顺序要一一对应,数组成员不能包含空格
# 自定义值支持自定义函数,如果你需要包含空格或者读取文件等操作,可以声明一个自定义函数,像下面这样。
# 如果自定义值数组成员以 () 结尾SDK 在获取值的时候会判断自定义函数是否存在并执行,如果不存在则使用原始值。
# 自定义请求参数的键
api_custom_key=(
"CurrentPage"
"ShowSize"
)
# 自定义请求参数的值
api_custom_value=(
"1"
"get_show_size()" # 解析参数时会执行函数 (所以最后提交的值是 50)
)
# 如果值以 () 结尾,那么 SDK 会假设它是一个已定义函数,获取值时会判断函数是否存在并执行,如果不存在则使用原始值
get_show_size() {
echo 50
}
# 获取 SSL 证书列表https://help.aliyun.com/document_detail/126511.html
aliapi_rpc "cas.aliyuncs.com" "GET" "2018-07-13" "DescribeUserCertificateList" "${api_custom_key[*]}" "${api_custom_value[*]}"
# 解析参数时会执行函数 (所以 ShowSize 的值是 50)
aliapi_rpc GET cas.aliyuncs.com 2018-07-13 DescribeUserCertificateList --CurrentPage 1 --ShowSize "get_show_size()"
# $? == 0 代表 HTTP CODE == 200 反之 $? == 1
# 只要 curl 的返回代码 == 0 就会返回接收到的数据
# 只要 curl 的退出代码 == 0 就会返回接收到的数据
if [[ $? -eq 0 ]]; then
# 执行成功
else
@@ -73,8 +57,6 @@ else
fi
```
更多示例请参考 [examples](https://github.com/Hill-98/aliyun-openapi-shell-sdk/tree/master/examples) 下的文件
更多示例请参考 [examples](https://github.com/Hill-98/aliyun-openapi-bash-sdk/tree/master/examples) 下的文件
如果你有好的示例,欢迎提交 [PR](https://github.com/Hill-98/aliyun-openapi-shell-sdk/pulls)
如果你有建议 / BUG 要反馈,请提交 [Issue](https://github.com/Hill-98/aliyun-openapi-shell-sdk/issues)
如果你有好的示例,欢迎提交 [PR](https://github.com/Hill-98/aliyun-openapi-bash-sdk/pulls)