mirror of
https://github.com/Hill-98/aliyun-openapi-bash-sdk.git
synced 2025-10-23 02:19:33 +08:00
Rewrite call method
This commit is contained in:
40
README.md
40
README.md
@@ -1,13 +1,10 @@
|
||||
# Aliyun OpenAPI Shell SDK
|
||||
# Aliyun OpenAPI Bash SDK
|
||||
|
||||
这是一个非官方的阿里云 OpenAPI Shell SDK,方便 Shell 脚本调用阿里云 OpenAPI,SDK 主要实现了自动计算 OpenAPI 的请求签名。
|
||||
|
||||
虽然阿里云官方有 [AliyunCLI](https://github.com/aliyun/aliyun-cli),可以在 Shell 环境下使用阿里云 OpenAPI,但是并不支持某些 API (比如 SSL 证书)。
|
||||
对于存储空间有限的嵌入式设备,Shell SDK 可能是更好的选择。
|
||||
这是一个非官方的阿里云 OpenAPI Bash SDK,方便 Bash 脚本调用阿里云 OpenAPI,SDK 主要实现了自动计算 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)。
|
||||
|
Reference in New Issue
Block a user