From d027945c9c2cd5694aa28e372e5283a2e00a1c12 Mon Sep 17 00:00:00 2001 From: yndu13 Date: Thu, 19 Sep 2024 17:23:31 +0800 Subject: [PATCH] refactor: solve the inconsistency of credentials refresh in all methods --- csharp/core/Client.cs | 88 +++++++++-------- csharp/core/Properties/AssemblyInfo.cs | 4 +- csharp/core/client.csproj | 4 +- golang/client/client.go | 81 ++++------------ golang/client/client_test.go | 47 +++++++-- golang/go.mod | 4 +- java/pom.xml | 8 +- .../java/com/aliyun/teaopenapi/Client.java | 33 ++++--- .../com/aliyun/teaopenapi/ClientTest.java | 12 +++ main.tea | 33 ++++--- python/alibabacloud_tea_openapi/client.py | 88 +++++++++-------- python/setup.py | 6 +- python/tests/test_client.py | 95 +++++++++++-------- ts/package.json | 2 +- ts/src/client.ts | 33 ++++--- 15 files changed, 285 insertions(+), 253 deletions(-) diff --git a/csharp/core/Client.cs b/csharp/core/Client.cs index 3fee618..bddb278 100644 --- a/csharp/core/Client.cs +++ b/csharp/core/Client.cs @@ -264,18 +264,19 @@ public Dictionary DoRPCRequest(string action, string version, st } if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous")) { - string credentialType = GetType(); + Aliyun.Credentials.Models.CredentialModel credentialModel = this._credential.GetCredential(); + string credentialType = credentialModel.Type; if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer")) { - string bearerToken = GetBearerToken(); + string bearerToken = credentialModel.BearerToken; request_.Query["BearerToken"] = bearerToken; request_.Query["SignatureType"] = "BEARERTOKEN"; } else { - string accessKeyId = GetAccessKeyId(); - string accessKeySecret = GetAccessKeySecret(); - string securityToken = GetSecurityToken(); + string accessKeyId = credentialModel.AccessKeyId; + string accessKeySecret = credentialModel.AccessKeySecret; + string securityToken = credentialModel.SecurityToken; if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken)) { request_.Query["SecurityToken"] = securityToken; @@ -535,18 +536,19 @@ public async Task> DoRPCRequestAsync(string action, s } if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous")) { - string credentialType = await GetTypeAsync(); + Aliyun.Credentials.Models.CredentialModel credentialModel = await this._credential.GetCredentialAsync(); + string credentialType = credentialModel.Type; if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer")) { - string bearerToken = await GetBearerTokenAsync(); + string bearerToken = credentialModel.BearerToken; request_.Query["BearerToken"] = bearerToken; request_.Query["SignatureType"] = "BEARERTOKEN"; } else { - string accessKeyId = await GetAccessKeyIdAsync(); - string accessKeySecret = await GetAccessKeySecretAsync(); - string securityToken = await GetSecurityTokenAsync(); + string accessKeyId = credentialModel.AccessKeyId; + string accessKeySecret = credentialModel.AccessKeySecret; + string securityToken = credentialModel.SecurityToken; if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken)) { request_.Query["SecurityToken"] = securityToken; @@ -789,18 +791,19 @@ public Dictionary DoROARequest(string action, string version, st } if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous")) { - string credentialType = GetType(); + Aliyun.Credentials.Models.CredentialModel credentialModel = this._credential.GetCredential(); + string credentialType = credentialModel.Type; if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer")) { - string bearerToken = GetBearerToken(); + string bearerToken = credentialModel.BearerToken; request_.Headers["x-acs-bearer-token"] = bearerToken; request_.Headers["x-acs-signature-type"] = "BEARERTOKEN"; } else { - string accessKeyId = GetAccessKeyId(); - string accessKeySecret = GetAccessKeySecret(); - string securityToken = GetSecurityToken(); + string accessKeyId = credentialModel.AccessKeyId; + string accessKeySecret = credentialModel.AccessKeySecret; + string securityToken = credentialModel.SecurityToken; if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken)) { request_.Headers["x-acs-accesskey-id"] = accessKeyId; @@ -1040,18 +1043,19 @@ public async Task> DoROARequestAsync(string action, s } if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous")) { - string credentialType = await GetTypeAsync(); + Aliyun.Credentials.Models.CredentialModel credentialModel = await this._credential.GetCredentialAsync(); + string credentialType = credentialModel.Type; if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer")) { - string bearerToken = await GetBearerTokenAsync(); + string bearerToken = credentialModel.BearerToken; request_.Headers["x-acs-bearer-token"] = bearerToken; request_.Headers["x-acs-signature-type"] = "BEARERTOKEN"; } else { - string accessKeyId = await GetAccessKeyIdAsync(); - string accessKeySecret = await GetAccessKeySecretAsync(); - string securityToken = await GetSecurityTokenAsync(); + string accessKeyId = credentialModel.AccessKeyId; + string accessKeySecret = credentialModel.AccessKeySecret; + string securityToken = credentialModel.SecurityToken; if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken)) { request_.Headers["x-acs-accesskey-id"] = accessKeyId; @@ -1292,18 +1296,19 @@ public Dictionary DoROARequestWithForm(string action, string ver } if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous")) { - string credentialType = GetType(); + Aliyun.Credentials.Models.CredentialModel credentialModel = this._credential.GetCredential(); + string credentialType = credentialModel.Type; if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer")) { - string bearerToken = GetBearerToken(); + string bearerToken = credentialModel.BearerToken; request_.Headers["x-acs-bearer-token"] = bearerToken; request_.Headers["x-acs-signature-type"] = "BEARERTOKEN"; } else { - string accessKeyId = GetAccessKeyId(); - string accessKeySecret = GetAccessKeySecret(); - string securityToken = GetSecurityToken(); + string accessKeyId = credentialModel.AccessKeyId; + string accessKeySecret = credentialModel.AccessKeySecret; + string securityToken = credentialModel.SecurityToken; if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken)) { request_.Headers["x-acs-accesskey-id"] = accessKeyId; @@ -1542,18 +1547,19 @@ public async Task> DoROARequestWithFormAsync(string a } if (!AlibabaCloud.TeaUtil.Common.EqualString(authType, "Anonymous")) { - string credentialType = await GetTypeAsync(); + Aliyun.Credentials.Models.CredentialModel credentialModel = await this._credential.GetCredentialAsync(); + string credentialType = credentialModel.Type; if (AlibabaCloud.TeaUtil.Common.EqualString(credentialType, "bearer")) { - string bearerToken = await GetBearerTokenAsync(); + string bearerToken = credentialModel.BearerToken; request_.Headers["x-acs-bearer-token"] = bearerToken; request_.Headers["x-acs-signature-type"] = "BEARERTOKEN"; } else { - string accessKeyId = await GetAccessKeyIdAsync(); - string accessKeySecret = await GetAccessKeySecretAsync(); - string securityToken = await GetSecurityTokenAsync(); + string accessKeyId = credentialModel.AccessKeyId; + string accessKeySecret = credentialModel.AccessKeySecret; + string securityToken = credentialModel.SecurityToken; if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken)) { request_.Headers["x-acs-accesskey-id"] = accessKeyId; @@ -1827,10 +1833,11 @@ public Dictionary DoRequest(Params params_, OpenApiRequest reque request_.Headers["x-acs-content-sha256"] = hashedRequestPayload; if (!AlibabaCloud.TeaUtil.Common.EqualString(params_.AuthType, "Anonymous")) { - string authType = GetType(); + Aliyun.Credentials.Models.CredentialModel credentialModel = this._credential.GetCredential(); + string authType = credentialModel.Type; if (AlibabaCloud.TeaUtil.Common.EqualString(authType, "bearer")) { - string bearerToken = GetBearerToken(); + string bearerToken = credentialModel.BearerToken; request_.Headers["x-acs-bearer-token"] = bearerToken; if (AlibabaCloud.TeaUtil.Common.EqualString(params_.Style, "RPC")) { @@ -1843,9 +1850,9 @@ public Dictionary DoRequest(Params params_, OpenApiRequest reque } else { - string accessKeyId = GetAccessKeyId(); - string accessKeySecret = GetAccessKeySecret(); - string securityToken = GetSecurityToken(); + string accessKeyId = credentialModel.AccessKeyId; + string accessKeySecret = credentialModel.AccessKeySecret; + string securityToken = credentialModel.SecurityToken; if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken)) { request_.Headers["x-acs-accesskey-id"] = accessKeyId; @@ -2123,10 +2130,11 @@ public async Task> DoRequestAsync(Params params_, Ope request_.Headers["x-acs-content-sha256"] = hashedRequestPayload; if (!AlibabaCloud.TeaUtil.Common.EqualString(params_.AuthType, "Anonymous")) { - string authType = await GetTypeAsync(); + Aliyun.Credentials.Models.CredentialModel credentialModel = await this._credential.GetCredentialAsync(); + string authType = credentialModel.Type; if (AlibabaCloud.TeaUtil.Common.EqualString(authType, "bearer")) { - string bearerToken = await GetBearerTokenAsync(); + string bearerToken = credentialModel.BearerToken; request_.Headers["x-acs-bearer-token"] = bearerToken; if (AlibabaCloud.TeaUtil.Common.EqualString(params_.Style, "RPC")) { @@ -2139,9 +2147,9 @@ public async Task> DoRequestAsync(Params params_, Ope } else { - string accessKeyId = await GetAccessKeyIdAsync(); - string accessKeySecret = await GetAccessKeySecretAsync(); - string securityToken = await GetSecurityTokenAsync(); + string accessKeyId = credentialModel.AccessKeyId; + string accessKeySecret = credentialModel.AccessKeySecret; + string securityToken = credentialModel.SecurityToken; if (!AlibabaCloud.TeaUtil.Common.Empty(securityToken)) { request_.Headers["x-acs-accesskey-id"] = accessKeyId; diff --git a/csharp/core/Properties/AssemblyInfo.cs b/csharp/core/Properties/AssemblyInfo.cs index 8f2a9a7..119de3a 100644 --- a/csharp/core/Properties/AssemblyInfo.cs +++ b/csharp/core/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ // Build Number // Revision // -[assembly : AssemblyVersion("0.1.10.0")] -[assembly : AssemblyFileVersion("0.1.10.0")] +[assembly : AssemblyVersion("0.1.11.0")] +[assembly : AssemblyFileVersion("0.1.11.0")] diff --git a/csharp/core/client.csproj b/csharp/core/client.csproj index 2829d86..0e3f2f2 100644 --- a/csharp/core/client.csproj +++ b/csharp/core/client.csproj @@ -41,10 +41,10 @@ runtime; build; native; contentfiles; analyzers - + - + \ No newline at end of file diff --git a/golang/client/client.go b/golang/client/client.go index d21b1d1..5726c5a 100644 --- a/golang/client/client.go +++ b/golang/client/client.go @@ -733,35 +733,20 @@ func (client *Client) DoRPCRequest(action *string, version *string, protocol *st } if !tea.BoolValue(util.EqualString(authType, tea.String("Anonymous"))) { - credentialType, _err := client.GetType() + credentialModel, _err := client.Credential.GetCredential() if _err != nil { return _result, _err } + credentialType := credentialModel.Type if tea.BoolValue(util.EqualString(credentialType, tea.String("bearer"))) { - bearerToken, _err := client.GetBearerToken() - if _err != nil { - return _result, _err - } - + bearerToken := credentialModel.BearerToken request_.Query["BearerToken"] = bearerToken request_.Query["SignatureType"] = tea.String("BEARERTOKEN") } else { - accessKeyId, _err := client.GetAccessKeyId() - if _err != nil { - return _result, _err - } - - accessKeySecret, _err := client.GetAccessKeySecret() - if _err != nil { - return _result, _err - } - - securityToken, _err := client.GetSecurityToken() - if _err != nil { - return _result, _err - } - + accessKeyId := credentialModel.AccessKeyId + accessKeySecret := credentialModel.AccessKeySecret + securityToken := credentialModel.SecurityToken if !tea.BoolValue(util.Empty(securityToken)) { request_.Query["SecurityToken"] = securityToken } @@ -1019,35 +1004,20 @@ func (client *Client) DoROARequest(action *string, version *string, protocol *st } if !tea.BoolValue(util.EqualString(authType, tea.String("Anonymous"))) { - credentialType, _err := client.GetType() + credentialModel, _err := client.Credential.GetCredential() if _err != nil { return _result, _err } + credentialType := credentialModel.Type if tea.BoolValue(util.EqualString(credentialType, tea.String("bearer"))) { - bearerToken, _err := client.GetBearerToken() - if _err != nil { - return _result, _err - } - + bearerToken := credentialModel.BearerToken request_.Headers["x-acs-bearer-token"] = bearerToken request_.Headers["x-acs-signature-type"] = tea.String("BEARERTOKEN") } else { - accessKeyId, _err := client.GetAccessKeyId() - if _err != nil { - return _result, _err - } - - accessKeySecret, _err := client.GetAccessKeySecret() - if _err != nil { - return _result, _err - } - - securityToken, _err := client.GetSecurityToken() - if _err != nil { - return _result, _err - } - + accessKeyId := credentialModel.AccessKeyId + accessKeySecret := credentialModel.AccessKeySecret + securityToken := credentialModel.SecurityToken if !tea.BoolValue(util.Empty(securityToken)) { request_.Headers["x-acs-accesskey-id"] = accessKeyId request_.Headers["x-acs-security-token"] = securityToken @@ -1307,35 +1277,20 @@ func (client *Client) DoROARequestWithForm(action *string, version *string, prot } if !tea.BoolValue(util.EqualString(authType, tea.String("Anonymous"))) { - credentialType, _err := client.GetType() + credentialModel, _err := client.Credential.GetCredential() if _err != nil { return _result, _err } + credentialType := credentialModel.Type if tea.BoolValue(util.EqualString(credentialType, tea.String("bearer"))) { - bearerToken, _err := client.GetBearerToken() - if _err != nil { - return _result, _err - } - + bearerToken := credentialModel.BearerToken request_.Headers["x-acs-bearer-token"] = bearerToken request_.Headers["x-acs-signature-type"] = tea.String("BEARERTOKEN") } else { - accessKeyId, _err := client.GetAccessKeyId() - if _err != nil { - return _result, _err - } - - accessKeySecret, _err := client.GetAccessKeySecret() - if _err != nil { - return _result, _err - } - - securityToken, _err := client.GetSecurityToken() - if _err != nil { - return _result, _err - } - + accessKeyId := credentialModel.AccessKeyId + accessKeySecret := credentialModel.AccessKeySecret + securityToken := credentialModel.SecurityToken if !tea.BoolValue(util.Empty(securityToken)) { request_.Headers["x-acs-accesskey-id"] = accessKeyId request_.Headers["x-acs-security-token"] = securityToken diff --git a/golang/client/client_test.go b/golang/client/client_test.go index 060fb0f..c8795d8 100644 --- a/golang/client/client_test.go +++ b/golang/client/client_test.go @@ -2,6 +2,7 @@ package client import ( "encoding/json" + "io" "io/ioutil" "net/http" "regexp" @@ -373,6 +374,9 @@ func CreateRuntimeOptions() (_result *util.RuntimeOptions) { Headers: map[string]*string{ "extends-key": tea.String("extends-value"), }, + Queries: map[string]*string{ + "extends-key": tea.String("extends-value"), + }, } runtime := &util.RuntimeOptions{ ReadTimeout: tea.Int(4000), @@ -447,7 +451,7 @@ func TestCallApiForRPCWithV2Sign_AK_Form(t *testing.T) { tea_util.AssertEqual(t, "key1=value&key2=1&key3=true", headers["raw-body"]) regx, _ := regexp.Compile("AccessKeyId=ak&Action=TestAPI&Format=json&SecurityToken=token&Signature=.+" + "&SignatureMethod=HMAC-SHA1&SignatureNonce=.+&SignatureVersion=1.0&Timestamp=.+&Version=2022-06-01" + - "&global-query=global-value&key1=value&key2=1&key3=true") + "&extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=true") str, _ := util.AssertAsString(headers["raw-query"]) find := regx.FindAllString(tea.StringValue(str), -1) tea_util.AssertNotNil(t, find) @@ -481,7 +485,7 @@ func TestCallApiForRPCWithV2Sign_AK_Form(t *testing.T) { tea_util.AssertNil(t, _err) regx, _ = regexp.Compile("Action=TestAPI&BearerToken=token&Format=json" + "&SignatureNonce=.+&SignatureType=BEARERTOKEN&Timestamp=.+&Version=2022-06-01" + - "&key1=value&key2=1&key3=true") + "&extends-key=extends-value&key1=value&key2=1&key3=true") str, _ = util.AssertAsString(headers["raw-query"]) find = regx.FindAllString(tea.StringValue(str), -1) tea_util.AssertNotNil(t, find) @@ -525,7 +529,7 @@ func TestCallApiForRPCWithV2Sign_Anonymous_JSON(t *testing.T) { tea_util.AssertNil(t, _err) tea_util.AssertEqual(t, "key1=value&key2=1&key3=true", headers["raw-body"]) regx, _ := regexp.Compile("Action=TestAPI&Format=json&SignatureNonce=.+&Timestamp=.+&Version=2022-06-01" + - "&global-query=global-value&key1=value&key2=1&key3=true") + "&extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=true") str, _ := util.AssertAsString(headers["raw-query"]) find := regx.FindAllString(tea.StringValue(str), -1) tea_util.AssertNotNil(t, find) @@ -591,7 +595,7 @@ func TestCallApiForROAWithV2Sign_HTTPS_AK_Form(t *testing.T) { headers, _err := util.AssertAsMap(result["headers"]) tea_util.AssertNil(t, _err) tea_util.AssertEqual(t, "key1=value&key2=1&key3=true", headers["raw-body"]) - tea_util.AssertEqual(t, "global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) + tea_util.AssertEqual(t, "extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) str, _ := util.AssertAsString(headers["user-agent"]) has := strings.Contains(tea.StringValue(str), "TeaDSL/1 config.userAgent") tea_util.AssertEqual(t, true, has) @@ -701,7 +705,7 @@ func TestCallApiForROAWithV2Sign_Anonymous_JSON(t *testing.T) { headers, _err := util.AssertAsMap(result["headers"]) tea_util.AssertNil(t, _err) tea_util.AssertEqual(t, "{\"key1\":\"value\",\"key2\":1,\"key3\":true}", headers["raw-body"]) - tea_util.AssertEqual(t, "global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) + tea_util.AssertEqual(t, "extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) str, _ := util.AssertAsString(headers["user-agent"]) has := strings.Contains(tea.StringValue(str), "TeaDSL/1 config.userAgent") tea_util.AssertEqual(t, true, has) @@ -769,7 +773,7 @@ func TestCallApiForRPCWithV3Sign_AK_Form(t *testing.T) { headers, _err := util.AssertAsMap(result["headers"]) tea_util.AssertNil(t, _err) tea_util.AssertEqual(t, "key1=value&key2=1&key3=true", headers["raw-body"]) - tea_util.AssertEqual(t, "global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) + tea_util.AssertEqual(t, "extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) str, _ := util.AssertAsString(headers["user-agent"]) has := strings.Contains(tea.StringValue(str), "TeaDSL/1 config.userAgent") tea_util.AssertEqual(t, true, has) @@ -821,7 +825,7 @@ func TestCallApiForRPCWithV3Sign_AK_Form(t *testing.T) { tea_util.AssertNil(t, _err) // tea_util.AssertEqual(t, "bearer token", headers["authorization"]) tea_util.AssertEqual(t, "token", headers["x-acs-bearer-token"]) - tea_util.AssertEqual(t, "SignatureType=BEARERTOKEN&key1=value&key2=1&key3=true", headers["raw-query"]) + tea_util.AssertEqual(t, "SignatureType=BEARERTOKEN&extends-key=extends-value&key1=value&key2=1&key3=true", headers["raw-query"]) } func TestCallApiForRPCWithV3Sign_Anonymous_JSON(t *testing.T) { @@ -858,7 +862,7 @@ func TestCallApiForRPCWithV3Sign_Anonymous_JSON(t *testing.T) { headers, _err := util.AssertAsMap(result["headers"]) tea_util.AssertNil(t, _err) tea_util.AssertEqual(t, "{\"key1\":\"value\",\"key2\":1,\"key3\":true}", headers["raw-body"]) - tea_util.AssertEqual(t, "global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) + tea_util.AssertEqual(t, "extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) str, _ := util.AssertAsString(headers["user-agent"]) has := strings.Contains(tea.StringValue(str), "TeaDSL/1 config.userAgent") tea_util.AssertEqual(t, true, has) @@ -925,7 +929,7 @@ func TestCallApiForROAWithV3Sign_AK_Form(t *testing.T) { headers, _err := util.AssertAsMap(result["headers"]) tea_util.AssertNil(t, _err) tea_util.AssertEqual(t, "key1=value&key2=1&key3=true", headers["raw-body"]) - tea_util.AssertEqual(t, "global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) + tea_util.AssertEqual(t, "extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) str, _ := util.AssertAsString(headers["user-agent"]) has := strings.Contains(tea.StringValue(str), "TeaDSL/1 config.userAgent") tea_util.AssertEqual(t, true, has) @@ -1014,7 +1018,7 @@ func TestCallApiForROAWithV3Sign_Anonymous_JSON(t *testing.T) { headers, _err := util.AssertAsMap(result["headers"]) tea_util.AssertNil(t, _err) tea_util.AssertEqual(t, "{\"key1\":\"value\",\"key2\":1,\"key3\":true}", headers["raw-body"]) - tea_util.AssertEqual(t, "global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) + tea_util.AssertEqual(t, "extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=true", headers["raw-query"]) str, _ := util.AssertAsString(headers["user-agent"]) has := strings.Contains(tea.StringValue(str), "TeaDSL/1 config.userAgent") tea_util.AssertEqual(t, true, has) @@ -1108,6 +1112,14 @@ func TestResponseBodyType(t *testing.T) { tea_util.AssertEqual(t, "{\"AppId\":\"test\", \"ClassId\":\"test\", \"UserId\":123}", tea.StringValue(bodyStr)) tea_util.AssertEqual(t, "200", result["statusCode"].(json.Number).String()) + params.BodyType = tea.String("binary") + params.Pathname = tea.String("/test") + result, _err = client.CallApi(params, request, runtime) + tea_util.AssertNil(t, _err) + bodyStr, _err = util.ReadAsString(result["body"].(io.Reader)) + tea_util.AssertNil(t, _err) + tea_util.AssertEqual(t, "{\"AppId\":\"test\", \"ClassId\":\"test\", \"UserId\":123}", tea.StringValue(bodyStr)) + params.Pathname = tea.String("/testError") tryErr := func() (_e error) { defer func() { @@ -1292,6 +1304,13 @@ func TestResponseBodyTypeRPC(t *testing.T) { tea_util.AssertNil(t, _err) tea_util.AssertEqual(t, "{\"AppId\":\"test\", \"ClassId\":\"test\", \"UserId\":123}", tea.StringValue(bodyStr)) tea_util.AssertEqual(t, "200", result["statusCode"].(json.Number).String()) + + params.BodyType = tea.String("binary") + result, _err = client.CallApi(params, request, runtime) + tea_util.AssertNil(t, _err) + bodyStr, _err = util.ReadAsString(result["body"].(io.Reader)) + tea_util.AssertNil(t, _err) + tea_util.AssertEqual(t, "{\"AppId\":\"test\", \"ClassId\":\"test\", \"UserId\":123}", tea.StringValue(bodyStr)) } func TestResponseBodyTypeROA(t *testing.T) { @@ -1356,6 +1375,14 @@ func TestResponseBodyTypeROA(t *testing.T) { tea_util.AssertEqual(t, "{\"AppId\":\"test\", \"ClassId\":\"test\", \"UserId\":123}", tea.StringValue(bodyStr)) tea_util.AssertEqual(t, "200", result["statusCode"].(json.Number).String()) + params.BodyType = tea.String("binary") + params.Pathname = tea.String("/test") + result, _err = client.CallApi(params, request, runtime) + tea_util.AssertNil(t, _err) + bodyStr, _err = util.ReadAsString(result["body"].(io.Reader)) + tea_util.AssertNil(t, _err) + tea_util.AssertEqual(t, "{\"AppId\":\"test\", \"ClassId\":\"test\", \"UserId\":123}", tea.StringValue(bodyStr)) + params.Pathname = tea.String("/testError") tryErr := func() (_e error) { defer func() { diff --git a/golang/go.mod b/golang/go.mod index fbed2be..f7a3ab6 100644 --- a/golang/go.mod +++ b/golang/go.mod @@ -4,12 +4,12 @@ go 1.14 require ( github.com/alibabacloud-go/alibabacloud-gateway-pop v0.0.6 - github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.4 + github.com/alibabacloud-go/alibabacloud-gateway-spi v0.0.5 github.com/alibabacloud-go/openapi-util v0.1.0 github.com/alibabacloud-go/tea v1.2.2 github.com/alibabacloud-go/tea-utils/v2 v2.0.6 github.com/alibabacloud-go/tea-xml v1.1.3 - github.com/aliyun/credentials-go v1.3.1 + github.com/aliyun/credentials-go v1.3.10 github.com/clbanning/mxj/v2 v2.5.5 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect diff --git a/java/pom.xml b/java/pom.xml index 0857d9b..a773c68 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -1,7 +1,7 @@ + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 com.aliyun tea-openapi @@ -56,7 +56,7 @@ com.aliyun credentials-java - 0.3.3 + 0.3.10 com.aliyun @@ -77,7 +77,7 @@ com.aliyun alibabacloud-gateway-spi - 0.0.1 + 0.0.2 com.aliyun diff --git a/java/src/main/java/com/aliyun/teaopenapi/Client.java b/java/src/main/java/com/aliyun/teaopenapi/Client.java index a320d6c..c913779 100644 --- a/java/src/main/java/com/aliyun/teaopenapi/Client.java +++ b/java/src/main/java/com/aliyun/teaopenapi/Client.java @@ -233,15 +233,16 @@ public Client(com.aliyun.teaopenapi.models.Config config) throws Exception { } if (!com.aliyun.teautil.Common.equalString(authType, "Anonymous")) { - String credentialType = this.getType(); + com.aliyun.credentials.models.CredentialModel credentialModel = _credential.getCredential(); + String credentialType = credentialModel.type; if (com.aliyun.teautil.Common.equalString(credentialType, "bearer")) { - String bearerToken = this.getBearerToken(); + String bearerToken = credentialModel.bearerToken; request_.query.put("BearerToken", bearerToken); request_.query.put("SignatureType", "BEARERTOKEN"); } else { - String accessKeyId = this.getAccessKeyId(); - String accessKeySecret = this.getAccessKeySecret(); - String securityToken = this.getSecurityToken(); + String accessKeyId = credentialModel.accessKeyId; + String accessKeySecret = credentialModel.accessKeySecret; + String securityToken = credentialModel.securityToken; if (!com.aliyun.teautil.Common.empty(securityToken)) { request_.query.put("SecurityToken", securityToken); } @@ -451,15 +452,16 @@ public Client(com.aliyun.teaopenapi.models.Config config) throws Exception { } if (!com.aliyun.teautil.Common.equalString(authType, "Anonymous")) { - String credentialType = this.getType(); + com.aliyun.credentials.models.CredentialModel credentialModel = _credential.getCredential(); + String credentialType = credentialModel.type; if (com.aliyun.teautil.Common.equalString(credentialType, "bearer")) { - String bearerToken = this.getBearerToken(); + String bearerToken = credentialModel.bearerToken; request_.headers.put("x-acs-bearer-token", bearerToken); request_.headers.put("x-acs-signature-type", "BEARERTOKEN"); } else { - String accessKeyId = this.getAccessKeyId(); - String accessKeySecret = this.getAccessKeySecret(); - String securityToken = this.getSecurityToken(); + String accessKeyId = credentialModel.accessKeyId; + String accessKeySecret = credentialModel.accessKeySecret; + String securityToken = credentialModel.securityToken; if (!com.aliyun.teautil.Common.empty(securityToken)) { request_.headers.put("x-acs-accesskey-id", accessKeyId); request_.headers.put("x-acs-security-token", securityToken); @@ -667,15 +669,16 @@ public Client(com.aliyun.teaopenapi.models.Config config) throws Exception { } if (!com.aliyun.teautil.Common.equalString(authType, "Anonymous")) { - String credentialType = this.getType(); + com.aliyun.credentials.models.CredentialModel credentialModel = _credential.getCredential(); + String credentialType = credentialModel.type; if (com.aliyun.teautil.Common.equalString(credentialType, "bearer")) { - String bearerToken = this.getBearerToken(); + String bearerToken = credentialModel.bearerToken; request_.headers.put("x-acs-bearer-token", bearerToken); request_.headers.put("x-acs-signature-type", "BEARERTOKEN"); } else { - String accessKeyId = this.getAccessKeyId(); - String accessKeySecret = this.getAccessKeySecret(); - String securityToken = this.getSecurityToken(); + String accessKeyId = credentialModel.accessKeyId; + String accessKeySecret = credentialModel.accessKeySecret; + String securityToken = credentialModel.securityToken; if (!com.aliyun.teautil.Common.empty(securityToken)) { request_.headers.put("x-acs-accesskey-id", accessKeyId); request_.headers.put("x-acs-security-token", securityToken); diff --git a/java/src/test/java/com/aliyun/teaopenapi/ClientTest.java b/java/src/test/java/com/aliyun/teaopenapi/ClientTest.java index b739eaf..58bb33c 100644 --- a/java/src/test/java/com/aliyun/teaopenapi/ClientTest.java +++ b/java/src/test/java/com/aliyun/teaopenapi/ClientTest.java @@ -215,6 +215,9 @@ public static RuntimeOptions createRuntimeOptions() throws Exception { ExtendsParameters extendsParameters = ExtendsParameters.build(TeaConverter.buildMap( new TeaPair("headers", TeaConverter.buildMap( new TeaPair("extends-key", "extends-value") + )), + new TeaPair("queries", TeaConverter.buildMap( + new TeaPair("extends-key", "extends-value") )) )); RuntimeOptions runtime = RuntimeOptions.build(TeaConverter.buildMap( @@ -282,6 +285,7 @@ public void testCallApiForRPCWithV2Sign_AK_Form() throws Exception { .withQueryParam("key2", equalTo("1")) .withQueryParam("key3", equalTo("true")) .withQueryParam("global-query", equalTo("global-value")) + .withQueryParam("extends-key", equalTo("extends-value")) .withQueryParam("Action", equalTo("TestAPI")) .withQueryParam("Version", equalTo("2022-06-01")) .withQueryParam("AccessKeyId", equalTo("ak")) @@ -358,6 +362,7 @@ public void testCallApiForRPCWithV2Sign_Anonymous_JSON() throws Exception { .withQueryParam("key2", equalTo("1")) .withQueryParam("key3", equalTo("true")) .withQueryParam("global-query", equalTo("global-value")) + .withQueryParam("extends-key", equalTo("extends-value")) .withQueryParam("Action", equalTo("TestAPI")) .withQueryParam("Version", equalTo("2022-06-01")) .withQueryParam("Format", equalTo("json")) @@ -411,6 +416,7 @@ public void testCallApiForROAWithV2Sign_AK_Form() throws Exception { .withQueryParam("key2", equalTo("1")) .withQueryParam("key3", equalTo("true")) .withQueryParam("global-query", equalTo("global-value")) + .withQueryParam("extends-key", equalTo("extends-value")) .withHeader("global-key", equalTo("global-value")) .withHeader("extends-key", equalTo("extends-value")) .withHeader("for-test", matching("sdk")) @@ -505,6 +511,7 @@ public void testCallApiForROAWithV2Sign_Anonymous_JSON() throws Exception { .withQueryParam("key2", equalTo("1")) .withQueryParam("key3", equalTo("true")) .withQueryParam("global-query", equalTo("global-value")) + .withQueryParam("extends-key", equalTo("extends-value")) .withHeader("global-key", equalTo("global-value")) .withHeader("extends-key", equalTo("extends-value")) .withHeader("for-test", matching("sdk")) @@ -558,6 +565,7 @@ public void testCallApiForRPCWithV3Sign_AK_Form() throws Exception { .withQueryParam("key2", equalTo("1")) .withQueryParam("key3", equalTo("true")) .withQueryParam("global-query", equalTo("global-value")) + .withQueryParam("extends-key", equalTo("extends-value")) .withHeader("global-key", equalTo("global-value")) .withHeader("extends-key", equalTo("extends-value")) .withHeader("for-test", matching("sdk")) @@ -628,6 +636,7 @@ public void testCallApiForRPCWithV3Sign_Anonymous_JSON() throws Exception { .withQueryParam("key2", equalTo("1")) .withQueryParam("key3", equalTo("true")) .withQueryParam("global-query", equalTo("global-value")) + .withQueryParam("extends-key", equalTo("extends-value")) .withHeader("global-key", equalTo("global-value")) .withHeader("extends-key", equalTo("extends-value")) .withHeader("for-test", matching("sdk")) @@ -680,6 +689,7 @@ public void testCallApiForROAWithV3Sign_AK_Form() throws Exception { .withQueryParam("key2", equalTo("1")) .withQueryParam("key3", equalTo("true")) .withQueryParam("global-query", equalTo("global-value")) + .withQueryParam("extends-key", equalTo("extends-value")) .withHeader("global-key", equalTo("global-value")) .withHeader("extends-key", equalTo("extends-value")) .withHeader("for-test", matching("sdk")) @@ -750,6 +760,7 @@ public void testCallApiForROAWithV3Sign_Anonymous_JSON() throws Exception { .withQueryParam("key2", equalTo("1")) .withQueryParam("key3", equalTo("true")) .withQueryParam("global-query", equalTo("global-value")) + .withQueryParam("extends-key", equalTo("extends-value")) .withHeader("global-key", equalTo("global-value")) .withHeader("extends-key", equalTo("extends-value")) .withHeader("for-test", matching("sdk")) @@ -803,6 +814,7 @@ public void testResponseBodyType() throws Exception { .withQueryParam("key2", equalTo("1")) .withQueryParam("key3", equalTo("true")) .withQueryParam("global-query", equalTo("global-value")) + .withQueryParam("extends-key", equalTo("extends-value")) .withHeader("content-type", equalTo("application/x-www-form-urlencoded")) .willReturn(aResponse().withStatus(200).withBody(responseBody) .withHeader("x-acs-request-id", "A45EE076-334D-5012-9746-A8F828D20FD4"))); diff --git a/main.tea b/main.tea index 6770d55..986275c 100644 --- a/main.tea +++ b/main.tea @@ -227,15 +227,16 @@ api doRPCRequest(action: string, version: string, protocol: string, method: stri } if (!Util.equalString(authType, 'Anonymous')) { - var credentialType = getType(); + var credentialModel = @credential.getCredential(); + var credentialType = credentialModel.type; if (Util.equalString(credentialType, 'bearer')) { - var bearerToken = getBearerToken(); + var bearerToken = credentialModel.bearerToken; __request.query.BearerToken = bearerToken; __request.query.SignatureType = 'BEARERTOKEN'; } else { - var accessKeyId = getAccessKeyId(); - var accessKeySecret = getAccessKeySecret(); - var securityToken = getSecurityToken(); + var accessKeyId = credentialModel.accessKeyId; + var accessKeySecret = credentialModel.accessKeySecret; + var securityToken = credentialModel.securityToken; if (!Util.empty(securityToken)) { __request.query.SecurityToken = securityToken; } @@ -404,15 +405,16 @@ api doROARequest(action: string, version: string, protocol: string, method: stri } if (!Util.equalString(authType, 'Anonymous')) { - var credentialType = getType(); + var credentialModel = @credential.getCredential(); + var credentialType = credentialModel.type; if (Util.equalString(credentialType, 'bearer')) { - var bearerToken = getBearerToken(); + var bearerToken = credentialModel.bearerToken; __request.headers.x-acs-bearer-token = bearerToken; __request.headers.x-acs-signature-type = 'BEARERTOKEN'; } else { - var accessKeyId = getAccessKeyId(); - var accessKeySecret = getAccessKeySecret(); - var securityToken = getSecurityToken(); + var accessKeyId = credentialModel.accessKeyId; + var accessKeySecret = credentialModel.accessKeySecret; + var securityToken = credentialModel.securityToken; if (!Util.empty(securityToken)) { __request.headers.x-acs-accesskey-id = accessKeyId; __request.headers.x-acs-security-token = securityToken; @@ -582,15 +584,16 @@ api doROARequestWithForm(action: string, version: string, protocol: string, meth } if (!Util.equalString(authType, 'Anonymous')) { - var credentialType = getType(); + var credentialModel = @credential.getCredential(); + var credentialType = credentialModel.type; if (Util.equalString(credentialType, 'bearer')) { - var bearerToken = getBearerToken(); + var bearerToken = credentialModel.bearerToken; __request.headers.x-acs-bearer-token = bearerToken; __request.headers.x-acs-signature-type = 'BEARERTOKEN'; } else { - var accessKeyId = getAccessKeyId(); - var accessKeySecret = getAccessKeySecret(); - var securityToken = getSecurityToken(); + var accessKeyId = credentialModel.accessKeyId; + var accessKeySecret = credentialModel.accessKeySecret; + var securityToken = credentialModel.securityToken; if (!Util.empty(securityToken)) { __request.headers.x-acs-accesskey-id = accessKeyId; __request.headers.x-acs-security-token = securityToken; diff --git a/python/alibabacloud_tea_openapi/client.py b/python/alibabacloud_tea_openapi/client.py index 5818091..94301da 100644 --- a/python/alibabacloud_tea_openapi/client.py +++ b/python/alibabacloud_tea_openapi/client.py @@ -223,15 +223,16 @@ def do_rpcrequest( _request.body = UtilClient.to_form_string(tmp) _request.headers['content-type'] = 'application/x-www-form-urlencoded' if not UtilClient.equal_string(auth_type, 'Anonymous'): - credential_type = self.get_type() + credential_model = self._credential.get_credential() + credential_type = credential_model.type if UtilClient.equal_string(credential_type, 'bearer'): - bearer_token = self.get_bearer_token() + bearer_token = credential_model.bearer_token _request.query['BearerToken'] = bearer_token _request.query['SignatureType'] = 'BEARERTOKEN' else: - access_key_id = self.get_access_key_id() - access_key_secret = self.get_access_key_secret() - security_token = self.get_security_token() + access_key_id = credential_model.access_key_id + access_key_secret = credential_model.access_key_secret + security_token = credential_model.security_token if not UtilClient.empty(security_token): _request.query['SecurityToken'] = security_token _request.query['SignatureMethod'] = 'HMAC-SHA1' @@ -418,15 +419,16 @@ async def do_rpcrequest_async( _request.body = UtilClient.to_form_string(tmp) _request.headers['content-type'] = 'application/x-www-form-urlencoded' if not UtilClient.equal_string(auth_type, 'Anonymous'): - credential_type = await self.get_type_async() + credential_model = await self._credential.get_credential_async() + credential_type = credential_model.type if UtilClient.equal_string(credential_type, 'bearer'): - bearer_token = await self.get_bearer_token_async() + bearer_token = credential_model.bearer_token _request.query['BearerToken'] = bearer_token _request.query['SignatureType'] = 'BEARERTOKEN' else: - access_key_id = await self.get_access_key_id_async() - access_key_secret = await self.get_access_key_secret_async() - security_token = await self.get_security_token_async() + access_key_id = credential_model.access_key_id + access_key_secret = credential_model.access_key_secret + security_token = credential_model.security_token if not UtilClient.empty(security_token): _request.query['SecurityToken'] = security_token _request.query['SignatureMethod'] = 'HMAC-SHA1' @@ -603,15 +605,16 @@ def do_roarequest( _request.query = TeaCore.merge(_request.query, request.query) if not UtilClient.equal_string(auth_type, 'Anonymous'): - credential_type = self.get_type() + credential_model = self._credential.get_credential() + credential_type = credential_model.type if UtilClient.equal_string(credential_type, 'bearer'): - bearer_token = self.get_bearer_token() + bearer_token = credential_model.bearer_token _request.headers['x-acs-bearer-token'] = bearer_token _request.headers['x-acs-signature-type'] = 'BEARERTOKEN' else: - access_key_id = self.get_access_key_id() - access_key_secret = self.get_access_key_secret() - security_token = self.get_security_token() + access_key_id = credential_model.access_key_id + access_key_secret = credential_model.access_key_secret + security_token = credential_model.security_token if not UtilClient.empty(security_token): _request.headers['x-acs-accesskey-id'] = access_key_id _request.headers['x-acs-security-token'] = security_token @@ -787,15 +790,16 @@ async def do_roarequest_async( _request.query = TeaCore.merge(_request.query, request.query) if not UtilClient.equal_string(auth_type, 'Anonymous'): - credential_type = await self.get_type_async() + credential_model = await self._credential.get_credential_async() + credential_type = credential_model.type if UtilClient.equal_string(credential_type, 'bearer'): - bearer_token = await self.get_bearer_token_async() + bearer_token = credential_model.bearer_token _request.headers['x-acs-bearer-token'] = bearer_token _request.headers['x-acs-signature-type'] = 'BEARERTOKEN' else: - access_key_id = await self.get_access_key_id_async() - access_key_secret = await self.get_access_key_secret_async() - security_token = await self.get_security_token_async() + access_key_id = credential_model.access_key_id + access_key_secret = credential_model.access_key_secret + security_token = credential_model.security_token if not UtilClient.empty(security_token): _request.headers['x-acs-accesskey-id'] = access_key_id _request.headers['x-acs-security-token'] = security_token @@ -972,15 +976,16 @@ def do_roarequest_with_form( _request.query = TeaCore.merge(_request.query, request.query) if not UtilClient.equal_string(auth_type, 'Anonymous'): - credential_type = self.get_type() + credential_model = self._credential.get_credential() + credential_type = credential_model.type if UtilClient.equal_string(credential_type, 'bearer'): - bearer_token = self.get_bearer_token() + bearer_token = credential_model.bearer_token _request.headers['x-acs-bearer-token'] = bearer_token _request.headers['x-acs-signature-type'] = 'BEARERTOKEN' else: - access_key_id = self.get_access_key_id() - access_key_secret = self.get_access_key_secret() - security_token = self.get_security_token() + access_key_id = credential_model.access_key_id + access_key_secret = credential_model.access_key_secret + security_token = credential_model.security_token if not UtilClient.empty(security_token): _request.headers['x-acs-accesskey-id'] = access_key_id _request.headers['x-acs-security-token'] = security_token @@ -1155,15 +1160,16 @@ async def do_roarequest_with_form_async( _request.query = TeaCore.merge(_request.query, request.query) if not UtilClient.equal_string(auth_type, 'Anonymous'): - credential_type = await self.get_type_async() + credential_model = await self._credential.get_credential_async() + credential_type = credential_model.type if UtilClient.equal_string(credential_type, 'bearer'): - bearer_token = await self.get_bearer_token_async() + bearer_token = credential_model.bearer_token _request.headers['x-acs-bearer-token'] = bearer_token _request.headers['x-acs-signature-type'] = 'BEARERTOKEN' else: - access_key_id = await self.get_access_key_id_async() - access_key_secret = await self.get_access_key_secret_async() - security_token = await self.get_security_token_async() + access_key_id = credential_model.access_key_id + access_key_secret = credential_model.access_key_secret + security_token = credential_model.security_token if not UtilClient.empty(security_token): _request.headers['x-acs-accesskey-id'] = access_key_id _request.headers['x-acs-security-token'] = security_token @@ -1355,18 +1361,19 @@ def do_request( _request.headers['content-type'] = 'application/x-www-form-urlencoded' _request.headers['x-acs-content-sha256'] = hashed_request_payload if not UtilClient.equal_string(params.auth_type, 'Anonymous'): - auth_type = self.get_type() + credential_model = self._credential.get_credential() + auth_type = credential_model.type if UtilClient.equal_string(auth_type, 'bearer'): - bearer_token = self.get_bearer_token() + bearer_token = credential_model.bearer_token _request.headers['x-acs-bearer-token'] = bearer_token if UtilClient.equal_string(params.style, 'RPC'): _request.query['SignatureType'] = 'BEARERTOKEN' else: _request.headers['x-acs-signature-type'] = 'BEARERTOKEN' else: - access_key_id = self.get_access_key_id() - access_key_secret = self.get_access_key_secret() - security_token = self.get_security_token() + access_key_id = credential_model.access_key_id + access_key_secret = credential_model.access_key_secret + security_token = credential_model.security_token if not UtilClient.empty(security_token): _request.headers['x-acs-accesskey-id'] = access_key_id _request.headers['x-acs-security-token'] = security_token @@ -1561,18 +1568,19 @@ async def do_request_async( _request.headers['content-type'] = 'application/x-www-form-urlencoded' _request.headers['x-acs-content-sha256'] = hashed_request_payload if not UtilClient.equal_string(params.auth_type, 'Anonymous'): - auth_type = await self.get_type_async() + credential_model = await self._credential.get_credential_async() + auth_type = credential_model.type if UtilClient.equal_string(auth_type, 'bearer'): - bearer_token = await self.get_bearer_token_async() + bearer_token = credential_model.bearer_token _request.headers['x-acs-bearer-token'] = bearer_token if UtilClient.equal_string(params.style, 'RPC'): _request.query['SignatureType'] = 'BEARERTOKEN' else: _request.headers['x-acs-signature-type'] = 'BEARERTOKEN' else: - access_key_id = await self.get_access_key_id_async() - access_key_secret = await self.get_access_key_secret_async() - security_token = await self.get_security_token_async() + access_key_id = credential_model.access_key_id + access_key_secret = credential_model.access_key_secret + security_token = credential_model.security_token if not UtilClient.empty(security_token): _request.headers['x-acs-accesskey-id'] = access_key_id _request.headers['x-acs-security-token'] = security_token diff --git a/python/setup.py b/python/setup.py index 0866d92..38aa5c9 100644 --- a/python/setup.py +++ b/python/setup.py @@ -24,7 +24,7 @@ """ setup module for alibabacloud_tea_openapi. -Created on 07/07/2024 +Created on 19/09/2024 @author: Alibaba Cloud SDK """ @@ -38,9 +38,9 @@ VERSION = __import__(PACKAGE).__version__ REQUIRES = [ "alibabacloud_tea_util>=0.3.13, <1.0.0", - "alibabacloud_credentials>=0.3.1, <1.0.0", + "alibabacloud_credentials>=0.3.5, <1.0.0", "alibabacloud_openapi_util>=0.2.1, <1.0.0", - "alibabacloud_gateway_spi>=0.0.1, <1.0.0", + "alibabacloud_gateway_spi>=0.0.2, <1.0.0", "alibabacloud_tea_xml>=0.0.2, <1.0.0" ] diff --git a/python/tests/test_client.py b/python/tests/test_client.py index 1bb3018..4dbcf3e 100644 --- a/python/tests/test_client.py +++ b/python/tests/test_client.py @@ -184,6 +184,9 @@ def create_runtime_options(self) -> util_models.RuntimeOptions: extends_parameters = util_models.ExtendsParameters( headers={ 'extends-key': 'extends-value' + }, + queries={ + 'extends-key': 'extends-value' } ) runtime = util_models.RuntimeOptions( @@ -246,6 +249,7 @@ def request_callback(request: HTTPrettyRequest, uri: str, headers: dict): assert '1' == request.querystring['key2'][0] assert 'True' == request.querystring['key3'][0] assert 'global-value' == request.querystring['global-query'][0] + assert 'extends-value' == request.querystring['extends-key'][0] assert 'TestAPI' == request.querystring['Action'][0] assert '2022-06-01' == request.querystring['Version'][0] assert 'ak' == request.querystring['AccessKeyId'][0] @@ -335,7 +339,7 @@ def test_call_api_for_rpcwith_v2sign_ak_form_async(self, m): def request_callback(url, **request): assert None is not re.match( - '.+AccessKeyId=ak&Action=TestAPI&Format=json&SecurityToken=token&Signature=.+&SignatureMethod=HMAC-SHA1&SignatureNonce=.+&SignatureVersion=1.0&Timestamp=.+&Version=2022-06-01&global-query=global-value&key1=value&key2=1&key3=True', + '.+AccessKeyId=ak&Action=TestAPI&Format=json&SecurityToken=token&Signature=.+&SignatureMethod=HMAC-SHA1&SignatureNonce=.+&SignatureVersion=1.0&Timestamp=.+&Version=2022-06-01&extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', str(url)) assert 'global-value' == request['headers'].get('global-key') assert 'extends-value' == request['headers'].get('extends-key') @@ -377,7 +381,7 @@ def request_callback(url, **request): def bearer_request_callback(url, **request): assert None is not re.match( - '.+Action=TestAPI&BearerToken=token&Format=json&SignatureNonce=.+&SignatureType=BEARERTOKEN&Timestamp=.+&Version=2022-06-01&key1=value&key2=1&key3=True', + '.+Action=TestAPI&BearerToken=token&Format=json&SignatureNonce=.+&SignatureType=BEARERTOKEN&Timestamp=.+&Version=2022-06-01&extends-key=extends-value&key1=value&key2=1&key3=True', str(url)) # assert 'bearer token' == request.headers.get('authorization') content_type = request['headers'].get('content-type') @@ -429,6 +433,7 @@ def request_callback(request: HTTPrettyRequest, uri: str, headers: dict): assert '1' == request.querystring['key2'][0] assert 'True' == request.querystring['key3'][0] assert 'global-value' == request.querystring['global-query'][0] + assert 'extends-value' == request.querystring['extends-key'][0] assert 'TestAPI' == request.querystring['Action'][0] assert '2022-06-01' == request.querystring['Version'][0] assert 'json' == request.querystring['Format'][0] @@ -483,7 +488,7 @@ def test_call_api_for_rpcwith_v2sign_anonymous_json_async(self, m): def request_callback(url, **request): assert None is not re.match( - '.+Action=TestAPI&Format=json&SignatureNonce=.+&Timestamp=.+&Version=2022-06-01&global-query=global-value&key1=value&key2=1&key3=True', + '.+Action=TestAPI&Format=json&SignatureNonce=.+&Timestamp=.+&Version=2022-06-01&extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', str(url)) assert 'global-value' == request['headers'].get('global-key') assert 'extends-value' == request['headers'].get('extends-key') @@ -544,6 +549,7 @@ def request_callback(request: HTTPrettyRequest, uri: str, headers: dict): assert '1' == request.querystring['key2'][0] assert 'True' == request.querystring['key3'][0] assert 'global-value' == request.querystring['global-query'][0] + assert 'extends-value' == request.querystring['extends-key'][0] assert 'global-value' == request.headers.get('global-key') assert 'extends-value' == request.headers.get('extends-key') assert 'sdk' == request.headers.get('for-test') @@ -665,7 +671,7 @@ def test_call_api_for_roawith_v2sign_ak_form_async(self, m): ) def request_callback(url, **request): - assert 'http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True' == str(url) + assert 'http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True' == str(url) assert 'global-value' == request['headers'].get('global-key') assert 'extends-value' == request['headers'].get('extends-key') assert 'sdk' == request['headers'].get('for-test') @@ -688,7 +694,7 @@ def request_callback(url, **request): content_type) responseHeaders = {'x-acs-request-id': 'A45EE076-334D-5012-9746-A8F828D20FD4'} - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, @@ -714,7 +720,7 @@ def request_callback(url, **request): client = OpenApiClient(config) def bearer_request_callback(url, **request): - assert 'http://test1.aliyuncs.com/test?key1=value&key2=1&key3=True' == str(url) + assert 'http://test1.aliyuncs.com/test?extends-key=extends-value&key1=value&key2=1&key3=True' == str(url) assert '2022-06-01' == request['headers'].get('x-acs-version') assert 'TestAPI' == request['headers'].get('x-acs-action') assert 'application/json' == request['headers'].get('accept') @@ -726,7 +732,7 @@ def bearer_request_callback(url, **request): assert content_type == 'application/x-www-form-urlencoded', 'expected application/x-www-form-urlencoded but received Content-Type: {}'.format( content_type) - m.post('http://test1.aliyuncs.com/test?key1=value&key2=1&key3=True', + m.post('http://test1.aliyuncs.com/test?extends-key=extends-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, @@ -757,7 +763,7 @@ def bearer_request_callback(url, **request): ) def bearer_json_request_callback(url, **request): - assert 'http://test2.aliyuncs.com/test?key1=value&key2=1&key3=True' == str(url) + assert 'http://test2.aliyuncs.com/test?extends-key=extends-value&key1=value&key2=1&key3=True' == str(url) assert '2022-06-01' == request['headers'].get('x-acs-version') assert 'TestAPI' == request['headers'].get('x-acs-action') assert 'application/json' == request['headers'].get('accept') @@ -769,7 +775,7 @@ def bearer_json_request_callback(url, **request): assert content_type == 'application/json; charset=utf-8', 'expected application/json but received Content-Type: {}'.format( content_type) - m.post('http://test2.aliyuncs.com/test?key1=value&key2=1&key3=True', + m.post('http://test2.aliyuncs.com/test?extends-key=extends-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, @@ -812,6 +818,7 @@ def request_callback(request: HTTPrettyRequest, uri: str, headers: dict): assert '1' == request.querystring['key2'][0] assert 'True' == request.querystring['key3'][0] assert 'global-value' == request.querystring['global-query'][0] + assert 'extends-value' == request.querystring['extends-key'][0] assert 'global-value' == request.headers.get('global-key') assert 'extends-value' == request.headers.get('extends-key') assert 'sdk' == request.headers.get('for-test') @@ -865,7 +872,7 @@ def test_call_api_for_roawith_v2sign_anonymous_json_async(self, m): ) def request_callback(url, **request): - assert 'http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True' == str(url) + assert 'http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True' == str(url) assert 'global-value' == request['headers'].get('global-key') assert 'extends-value' == request['headers'].get('extends-key') assert 'sdk' == request['headers'].get('for-test') @@ -884,7 +891,7 @@ def request_callback(url, **request): content_type) responseHeaders = {'x-acs-request-id': 'A45EE076-334D-5012-9746-A8F828D20FD4'} - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, @@ -929,6 +936,7 @@ def request_callback(request: HTTPrettyRequest, uri: str, headers: dict): assert '1' == request.querystring['key2'][0] assert 'True' == request.querystring['key3'][0] assert 'global-value' == request.querystring['global-query'][0] + assert 'extends-value' == request.querystring['extends-key'][0] assert 'sdk' == request.headers.get('for-test') assert 'global-value' == request.headers.get('global-key') assert 'extends-value' == request.headers.get('extends-key') @@ -1014,7 +1022,7 @@ def test_call_api_for_rpcwith_v3sign_ak_form_async(self, m): ) def request_callback(url, **request): - assert 'http://test.aliyuncs.com/?global-query=global-value&key1=value&key2=1&key3=True' == str(url) + assert 'http://test.aliyuncs.com/?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True' == str(url) assert 'sdk' == request['headers'].get('for-test') assert 'global-value' == request['headers'].get('global-key') assert 'extends-value' == request['headers'].get('extends-key') @@ -1039,7 +1047,7 @@ def request_callback(url, **request): content_type) responseHeaders = {'x-acs-request-id': 'A45EE076-334D-5012-9746-A8F828D20FD4'} - m.post('http://test.aliyuncs.com/?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, @@ -1064,7 +1072,7 @@ def request_callback(url, **request): client = OpenApiClient(config) def bearer_request_callback(url, **request): - assert 'http://test1.aliyuncs.com/?SignatureType=BEARERTOKEN&key1=value&key2=1&key3=True' == str(url) + assert 'http://test1.aliyuncs.com/?SignatureType=BEARERTOKEN&extends-key=extends-value&key1=value&key2=1&key3=True' == str(url) assert '2022-06-01' == request['headers'].get('x-acs-version') assert 'TestAPI' == request['headers'].get('x-acs-action') assert 'application/json' == request['headers'].get('accept') @@ -1076,7 +1084,7 @@ def bearer_request_callback(url, **request): content_type) responseHeaders = {'x-acs-request-id': 'A45EE076-334D-5012-9746-A8F828D20FD4'} - m.post('http://test1.aliyuncs.com/?SignatureType=BEARERTOKEN&key1=value&key2=1&key3=True', + m.post('http://test1.aliyuncs.com/?SignatureType=BEARERTOKEN&extends-key=extends-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, @@ -1118,6 +1126,7 @@ def request_callback(request: HTTPrettyRequest, uri: str, headers: dict): assert '1' == request.querystring['key2'][0] assert 'True' == request.querystring['key3'][0] assert 'global-value' == request.querystring['global-query'][0] + assert 'extends-value' == request.querystring['extends-key'][0] assert 'sdk' == request.headers.get('for-test') assert 'global-value' == request.headers.get('global-key') assert 'extends-value' == request.headers.get('extends-key') @@ -1170,7 +1179,7 @@ def test_call_api_for_rpcwith_v3sign_anonymous_json_async(self, m): ) def request_callback(url, **request): - assert 'http://test.aliyuncs.com/?global-query=global-value&key1=value&key2=1&key3=True' == str(url) + assert 'http://test.aliyuncs.com/?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True' == str(url) assert 'sdk' == request['headers'].get('for-test') assert 'global-value' == request['headers'].get('global-key') assert 'extends-value' == request['headers'].get('extends-key') @@ -1189,7 +1198,7 @@ def request_callback(url, **request): content_type) responseHeaders = {'x-acs-request-id': 'A45EE076-334D-5012-9746-A8F828D20FD4'} - m.post('http://test.aliyuncs.com/?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, @@ -1234,6 +1243,7 @@ def request_callback(request: HTTPrettyRequest, uri: str, headers: dict): assert '1' == request.querystring['key2'][0] assert 'True' == request.querystring['key3'][0] assert 'global-value' == request.querystring['global-query'][0] + assert 'extends-value' == request.querystring['extends-key'][0] assert 'sdk' == request.headers.get('for-test') assert 'global-value' == request.headers.get('global-key') assert 'extends-value' == request.headers.get('extends-key') @@ -1319,7 +1329,7 @@ def test_call_api_for_roawith_v3sign_ak_form_async(self, m): ) def request_callback(url, **request): - assert 'http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True' == str(url) + assert 'http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True' == str(url) assert 'sdk' == request['headers'].get('for-test') assert 'global-value' == request['headers'].get('global-key') assert 'extends-value' == request['headers'].get('extends-key') @@ -1344,7 +1354,7 @@ def request_callback(url, **request): content_type) responseHeaders = {'x-acs-request-id': 'A45EE076-334D-5012-9746-A8F828D20FD4'} - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, @@ -1369,7 +1379,7 @@ def request_callback(url, **request): client = OpenApiClient(config) def bearer_request_callback(url, **request): - assert 'http://test1.aliyuncs.com/test?key1=value&key2=1&key3=True' == str(url) + assert 'http://test1.aliyuncs.com/test?extends-key=extends-value&key1=value&key2=1&key3=True' == str(url) assert '2022-06-01' == request['headers'].get('x-acs-version') assert 'TestAPI' == request['headers'].get('x-acs-action') assert 'application/json' == request['headers'].get('accept') @@ -1381,7 +1391,7 @@ def bearer_request_callback(url, **request): assert content_type == 'application/x-www-form-urlencoded', 'expected application/x-www-form-urlencoded but received Content-Type: {}'.format( content_type) - m.post('http://test1.aliyuncs.com/test?key1=value&key2=1&key3=True', + m.post('http://test1.aliyuncs.com/test?extends-key=extends-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, @@ -1423,6 +1433,7 @@ def request_callback(request: HTTPrettyRequest, uri: str, headers: dict): assert '1' == request.querystring['key2'][0] assert 'True' == request.querystring['key3'][0] assert 'global-value' == request.querystring['global-query'][0] + assert 'extends-value' == request.querystring['extends-key'][0] assert 'sdk' == request.headers.get('for-test') assert 'global-value' == request.headers.get('global-key') assert 'extends-value' == request.headers.get('extends-key') @@ -1475,7 +1486,7 @@ def test_call_api_for_roawith_v3sign_anonymous_json_async(self, m): ) def request_callback(url, **request): - assert 'http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True' == str(url) + assert 'http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True' == str(url) assert 'sdk' == request['headers'].get('for-test') assert 'global-value' == request['headers'].get('global-key') assert 'extends-value' == request['headers'].get('extends-key') @@ -1494,7 +1505,7 @@ def request_callback(url, **request): content_type) responseHeaders = {'x-acs-request-id': 'A45EE076-334D-5012-9746-A8F828D20FD4'} - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, @@ -1539,6 +1550,7 @@ def request_callback(request: HTTPrettyRequest, uri: str, headers: dict): assert '1' == request.querystring['key2'][0] assert 'True' == request.querystring['key3'][0] assert 'global-value' == request.querystring['global-query'][0] + assert 'extends-value' == request.querystring['extends-key'][0] assert 'sdk' == request.headers.get('for-test') assert 'global-value' == request.headers.get('global-key') assert 'extends-value' == request.headers.get('extends-key') @@ -1652,7 +1664,7 @@ def test_response_body_type_async(self, m): ) def request_callback(url, **request): - assert 'http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True' == str(url) + assert 'http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True' == str(url) assert 'sdk' == request['headers'].get('for-test') assert 'global-value' == request['headers'].get('global-key') assert 'extends-value' == request['headers'].get('extends-key') @@ -1673,7 +1685,7 @@ def request_callback(url, **request): content_type) responseHeaders = {'x-acs-request-id': 'A45EE076-334D-5012-9746-A8F828D20FD4'} - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body='{"AppId":"test", "ClassId":"test", "UserId":123}', status=200, headers=responseHeaders, @@ -1691,7 +1703,7 @@ def request_callback(url, **request): self.assertEqual(123, result.get('body').get('UserId')) self.assertEqual(200, result.get('statusCode')) - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body='["AppId", "ClassId", "UserId"]', status=200, headers=responseHeaders, @@ -1712,7 +1724,7 @@ def request_callback(url, **request): self.assertEqual('UserId', result.get('body')[2]) self.assertEqual(200, result.get('statusCode')) - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body='["AppId", "ClassId", "UserId"]', status=200, headers=responseHeaders, @@ -1729,7 +1741,7 @@ def request_callback(url, **request): self.assertEqual('["AppId", "ClassId", "UserId"]', result.get('body')) self.assertEqual(200, result.get('statusCode')) - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body='["AppId", "ClassId", "UserId"]', status=200, headers=responseHeaders, @@ -1746,7 +1758,7 @@ def request_callback(url, **request): self.assertEqual('["AppId", "ClassId", "UserId"]', result.get('body').decode('utf-8')) self.assertEqual(200, result.get('statusCode')) - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body='{"Code":"error code", "Message":"error message", ' '"RequestId":"A45EE076-334D-5012-9746-A8F828D20FD4", ' '"Description":"error description", "AccessDeniedDetail":{}}', @@ -1763,7 +1775,7 @@ def request_callback(url, **request): self.assertEqual('error code', e.code) self.assertFalse('test' in e.accessDeniedDetail) - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body='{"Code":"error code", "Message":"error message", ' '"RequestId":"A45EE076-334D-5012-9746-A8F828D20FD4", ' '"Description":"error description", "AccessDeniedDetail":{}, "accessDeniedDetail":{"test": 0}}', @@ -1780,7 +1792,7 @@ def request_callback(url, **request): self.assertEqual('error code', e.code) self.assertFalse('test' in e.accessDeniedDetail) - m.post('http://test.aliyuncs.com/test?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/test?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body='{"Code":"error code", "Message":"error message", ' '"RequestId":"A45EE076-334D-5012-9746-A8F828D20FD4", ' '"Description":"error description", "accessDeniedDetail":{"test": 0}}', @@ -1925,14 +1937,14 @@ def test_request_body_type_async(self, m): ) def request_callback_1(url, **request): - assert 'http://test.aliyuncs.com/test1?global-query=global-value' == str(url) + assert 'http://test.aliyuncs.com/test1?extends-key=extends-value&global-query=global-value' == str(url) content_type = request['headers'].get('content-type') assert request['data'].decode('utf-8') == 'key1=value&key2=1&key3=True', 'unexpected body: {}'.format( request['data']) assert content_type == 'application/x-www-form-urlencoded', 'expected application/x-www-form-urlencoded but received Content-Type: {}'.format( content_type) - m.post('http://test.aliyuncs.com/test1?global-query=global-value', + m.post('http://test.aliyuncs.com/test1?extends-key=extends-value&global-query=global-value', body='{"AppId":"test", "ClassId":"test", "UserId":123}', status=200, callback=request_callback_1) @@ -1950,14 +1962,14 @@ def request_callback_1(url, **request): params.req_body_type = 'json' def request_callback_2(url, **request): - assert 'http://test.aliyuncs.com/test2?global-query=global-value' == str(url) + assert 'http://test.aliyuncs.com/test2?extends-key=extends-value&global-query=global-value' == str(url) content_type = request['headers'].get('content-type') assert request['data'].decode( 'utf-8') == '{"key1":"value","key2":1,"key3":true}', 'unexpected body: {}'.format(request['data']) assert content_type == 'application/json; charset=utf-8', 'expected application/json but received Content-Type: {}'.format( content_type) - m.post('http://test.aliyuncs.com/test2?global-query=global-value', + m.post('http://test.aliyuncs.com/test2?extends-key=extends-value&global-query=global-value', body='{"AppId":"test", "ClassId":"test", "UserId":123}', status=200, callback=request_callback_2) @@ -1979,13 +1991,13 @@ def request_callback_2(url, **request): ) def request_callback_3(url, **request): - assert 'http://test.aliyuncs.com/test3?global-query=global-value' == str(url) + assert 'http://test.aliyuncs.com/test3?extends-key=extends-value&global-query=global-value' == str(url) content_type = request['headers'].get('content-type') assert request['data'] == UtilClient.to_bytes('test byte'), 'unexpected body: {}'.format(request['data']) assert content_type is None, 'expected text/plain but received Content-Type: {}'.format( content_type) - m.post('http://test.aliyuncs.com/test3?global-query=global-value', + m.post('http://test.aliyuncs.com/test3?extends-key=extends-value&global-query=global-value', body='{"AppId":"test", "ClassId":"test", "UserId":123}', status=200, callback=request_callback_3) @@ -2006,13 +2018,13 @@ def request_callback_3(url, **request): ) def request_callback_4(url, **request): - assert 'http://test.aliyuncs.com/test4?global-query=global-value' == str(url) + assert 'http://test.aliyuncs.com/test4?extends-key=extends-value&global-query=global-value' == str(url) content_type = request['headers'].get('content-type') assert request['data'].decode('utf-8') == 'test byte', 'unexpected body: {}'.format(request['data']) assert content_type == 'application/octet-stream', 'expected application/octet-stream but received Content-Type: {}'.format( content_type) - m.post('http://test.aliyuncs.com/test4?global-query=global-value', + m.post('http://test.aliyuncs.com/test4?extends-key=extends-value&global-query=global-value', body='{"AppId":"test", "ClassId":"test", "UserId":123}', status=200, callback=request_callback_4) @@ -2055,6 +2067,7 @@ def request_callback(request: HTTPrettyRequest, uri: str, headers: dict): assert '1' == request.querystring['key2'][0] assert 'True' == request.querystring['key3'][0] assert 'global-value' == request.querystring['global-query'][0] + assert 'extends-value' == request.querystring['extends-key'][0] assert 'sdk' == request.headers.get('for-test') assert 'global-value' == request.headers.get('global-key') assert 'extends-value' == request.headers.get('extends-key') @@ -2110,7 +2123,7 @@ def test_execute_async(self, m): ) def request_callback(url, **request): - assert 'http://test.aliyuncs.com/?global-query=global-value&key1=value&key2=1&key3=True' == str(url) + assert 'http://test.aliyuncs.com/?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True' == str(url) assert 'sdk' == request['headers'].get('for-test') assert 'global-value' == request['headers'].get('global-key') assert 'extends-value' == request['headers'].get('extends-key') @@ -2129,7 +2142,7 @@ def request_callback(url, **request): content_type) responseHeaders = {'x-acs-request-id': 'A45EE076-334D-5012-9746-A8F828D20FD4'} - m.post('http://test.aliyuncs.com/?global-query=global-value&key1=value&key2=1&key3=True', + m.post('http://test.aliyuncs.com/?extends-key=extends-value&global-query=global-value&key1=value&key2=1&key3=True', body=responseBody, status=200, headers=responseHeaders, diff --git a/ts/package.json b/ts/package.json index 46ca91d..a51b349 100644 --- a/ts/package.json +++ b/ts/package.json @@ -24,7 +24,7 @@ "dependencies": { "@alicloud/tea-typescript": "^1.7.1", "@alicloud/tea-util": "^1.4.9", - "@alicloud/credentials": "^2", + "@alicloud/credentials": "^2.3.1", "@alicloud/openapi-util": "^0.3.2", "@alicloud/gateway-spi": "^0.0.8", "@alicloud/tea-xml": "0.0.3" diff --git a/ts/src/client.ts b/ts/src/client.ts index 0974644..460b632 100644 --- a/ts/src/client.ts +++ b/ts/src/client.ts @@ -435,15 +435,16 @@ export default class Client { } if (!Util.equalString(authType, "Anonymous")) { - let credentialType = await this.getType(); + let credentialModel = await this._credential.getCredential(); + let credentialType = credentialModel.type; if (Util.equalString(credentialType, "bearer")) { - let bearerToken = await this.getBearerToken(); + let bearerToken = credentialModel.bearerToken; request_.query["BearerToken"] = bearerToken; request_.query["SignatureType"] = "BEARERTOKEN"; } else { - let accessKeyId = await this.getAccessKeyId(); - let accessKeySecret = await this.getAccessKeySecret(); - let securityToken = await this.getSecurityToken(); + let accessKeyId = credentialModel.accessKeyId; + let accessKeySecret = credentialModel.accessKeySecret; + let securityToken = credentialModel.securityToken; if (!Util.empty(securityToken)) { request_.query["SecurityToken"] = securityToken; } @@ -650,15 +651,16 @@ export default class Client { } if (!Util.equalString(authType, "Anonymous")) { - let credentialType = await this.getType(); + let credentialModel = await this._credential.getCredential(); + let credentialType = credentialModel.type; if (Util.equalString(credentialType, "bearer")) { - let bearerToken = await this.getBearerToken(); + let bearerToken = credentialModel.bearerToken; request_.headers["x-acs-bearer-token"] = bearerToken; request_.headers["x-acs-signature-type"] = "BEARERTOKEN"; } else { - let accessKeyId = await this.getAccessKeyId(); - let accessKeySecret = await this.getAccessKeySecret(); - let securityToken = await this.getSecurityToken(); + let accessKeyId = credentialModel.accessKeyId; + let accessKeySecret = credentialModel.accessKeySecret; + let securityToken = credentialModel.securityToken; if (!Util.empty(securityToken)) { request_.headers["x-acs-accesskey-id"] = accessKeyId; request_.headers["x-acs-security-token"] = securityToken; @@ -863,15 +865,16 @@ export default class Client { } if (!Util.equalString(authType, "Anonymous")) { - let credentialType = await this.getType(); + let credentialModel = await this._credential.getCredential(); + let credentialType = credentialModel.type; if (Util.equalString(credentialType, "bearer")) { - let bearerToken = await this.getBearerToken(); + let bearerToken = credentialModel.bearerToken; request_.headers["x-acs-bearer-token"] = bearerToken; request_.headers["x-acs-signature-type"] = "BEARERTOKEN"; } else { - let accessKeyId = await this.getAccessKeyId(); - let accessKeySecret = await this.getAccessKeySecret(); - let securityToken = await this.getSecurityToken(); + let accessKeyId = credentialModel.accessKeyId; + let accessKeySecret = credentialModel.accessKeySecret; + let securityToken = credentialModel.securityToken; if (!Util.empty(securityToken)) { request_.headers["x-acs-accesskey-id"] = accessKeyId; request_.headers["x-acs-security-token"] = securityToken;