From 8c0dc37016067aa7205cc974d975ea65375d7255 Mon Sep 17 00:00:00 2001 From: nanhe Date: Fri, 25 Oct 2024 13:40:42 +0800 Subject: [PATCH] feat: codegen php with credentials consistency --- php/composer.json | 2 +- php/src/OpenApiClient.php | 62 +++++++++++++++++++++------------------ ts/test/client.spec.ts | 4 +-- 3 files changed, 36 insertions(+), 32 deletions(-) diff --git a/php/composer.json b/php/composer.json index 11e4da1..d0dd520 100644 --- a/php/composer.json +++ b/php/composer.json @@ -12,7 +12,7 @@ "require": { "php": ">5.5", "alibabacloud/tea-utils": "^0.2.21", - "alibabacloud/credentials": "^1.1", + "alibabacloud/credentials": "^1.2", "alibabacloud/openapi-util": "^0.1.10|^0.2.1", "alibabacloud/gateway-spi": "^1", "alibabacloud/tea-xml": "^0.2" diff --git a/php/src/OpenApiClient.php b/php/src/OpenApiClient.php index 915e080..8b835ac 100644 --- a/php/src/OpenApiClient.php +++ b/php/src/OpenApiClient.php @@ -265,15 +265,16 @@ public function doRPCRequest($action, $version, $protocol, $method, $authType, $ "message" => "Please set up the credentials correctly. If you are setting them through environment variables, please ensure that ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set correctly. See https://help.aliyun.com/zh/sdk/developer-reference/configure-the-alibaba-cloud-accesskey-environment-variable-on-linux-macos-and-windows-systems for more details." ]); } - $credentialType = $this->getType(); + $credentialModel = $this->_credential->getCredential(); + $credentialType = $credentialModel->type; if (Utils::equalString($credentialType, "bearer")) { - $bearerToken = $this->getBearerToken(); + $bearerToken = $credentialModel->bearerToken; $_request->query["BearerToken"] = $bearerToken; $_request->query["SignatureType"] = "BEARERTOKEN"; } else { - $accessKeyId = $this->getAccessKeyId(); - $accessKeySecret = $this->getAccessKeySecret(); - $securityToken = $this->getSecurityToken(); + $accessKeyId = $credentialModel->accessKeyId; + $accessKeySecret = $credentialModel->accessKeySecret; + $securityToken = $credentialModel->securityToken; if (!Utils::empty_($securityToken)) { $_request->query["SecurityToken"] = $securityToken; } @@ -393,13 +394,13 @@ public function doROARequest($action, $version, $protocol, $method, $authType, $ "socks5NetWork" => Utils::defaultString($runtime->socks5NetWork, $this->_socks5NetWork), "maxIdleConns" => Utils::defaultNumber($runtime->maxIdleConns, $this->_maxIdleConns), "retry" => [ - "retryable" => $runtime->autoretry, - "maxAttempts" => Utils::defaultNumber($runtime->maxAttempts, 3) - ], + "retryable" => $runtime->autoretry, + "maxAttempts" => Utils::defaultNumber($runtime->maxAttempts, 3) + ], "backoff" => [ - "policy" => Utils::defaultString($runtime->backoffPolicy, "no"), - "period" => Utils::defaultNumber($runtime->backoffPeriod, 1) - ], + "policy" => Utils::defaultString($runtime->backoffPolicy, "no"), + "period" => Utils::defaultNumber($runtime->backoffPeriod, 1) + ], "ignoreSSL" => $runtime->ignoreSSL ]; $_lastRequest = null; @@ -467,15 +468,16 @@ public function doROARequest($action, $version, $protocol, $method, $authType, $ "message" => "Please set up the credentials correctly. If you are setting them through environment variables, please ensure that ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set correctly. See https://help.aliyun.com/zh/sdk/developer-reference/configure-the-alibaba-cloud-accesskey-environment-variable-on-linux-macos-and-windows-systems for more details." ]); } - $credentialType = $this->getType(); + $credentialModel = $this->_credential->getCredential(); + $credentialType = $credentialModel->type; if (Utils::equalString($credentialType, "bearer")) { - $bearerToken = $this->getBearerToken(); + $bearerToken = $credentialModel->bearerToken; $_request->headers["x-acs-bearer-token"] = $bearerToken; $_request->headers["x-acs-signature-type"] = "BEARERTOKEN"; } else { - $accessKeyId = $this->getAccessKeyId(); - $accessKeySecret = $this->getAccessKeySecret(); - $securityToken = $this->getSecurityToken(); + $accessKeyId = $credentialModel->accessKeyId; + $accessKeySecret = $credentialModel->accessKeySecret; + $securityToken = $credentialModel->securityToken; if (!Utils::empty_($securityToken)) { $_request->headers["x-acs-accesskey-id"] = $accessKeyId; $_request->headers["x-acs-security-token"] = $securityToken; @@ -599,9 +601,9 @@ public function doROARequestWithForm($action, $version, $protocol, $method, $aut "maxAttempts" => Utils::defaultNumber($runtime->maxAttempts, 3) ], "backoff" => [ - "policy" => Utils::defaultString($runtime->backoffPolicy, "no"), - "period" => Utils::defaultNumber($runtime->backoffPeriod, 1) - ], + "policy" => Utils::defaultString($runtime->backoffPolicy, "no"), + "period" => Utils::defaultNumber($runtime->backoffPeriod, 1) + ], "ignoreSSL" => $runtime->ignoreSSL ]; $_lastRequest = null; @@ -670,15 +672,16 @@ public function doROARequestWithForm($action, $version, $protocol, $method, $aut "message" => "Please set up the credentials correctly. If you are setting them through environment variables, please ensure that ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set correctly. See https://help.aliyun.com/zh/sdk/developer-reference/configure-the-alibaba-cloud-accesskey-environment-variable-on-linux-macos-and-windows-systems for more details." ]); } - $credentialType = $this->getType(); + $credentialModel = $this->_credential->getCredential(); + $credentialType = $credentialModel->type; if (Utils::equalString($credentialType, "bearer")) { - $bearerToken = $this->getBearerToken(); + $bearerToken = $credentialModel->bearerToken; $_request->headers["x-acs-bearer-token"] = $bearerToken; $_request->headers["x-acs-signature-type"] = "BEARERTOKEN"; } else { - $accessKeyId = $this->getAccessKeyId(); - $accessKeySecret = $this->getAccessKeySecret(); - $securityToken = $this->getSecurityToken(); + $accessKeyId = $credentialModel->accessKeyId; + $accessKeySecret = $credentialModel->accessKeySecret; + $securityToken = $credentialModel->securityToken; if (!Utils::empty_($securityToken)) { $_request->headers["x-acs-accesskey-id"] = $accessKeyId; $_request->headers["x-acs-security-token"] = $securityToken; @@ -891,9 +894,10 @@ public function doRequest($params, $request, $runtime) "message" => "Please set up the credentials correctly. If you are setting them through environment variables, please ensure that ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set correctly. See https://help.aliyun.com/zh/sdk/developer-reference/configure-the-alibaba-cloud-accesskey-environment-variable-on-linux-macos-and-windows-systems for more details." ]); } - $authType = $this->getType(); + $credentialModel = $this->_credential->getCredential(); + $authType = $credentialModel->type; if (Utils::equalString($authType, "bearer")) { - $bearerToken = $this->getBearerToken(); + $bearerToken = $credentialModel->bearerToken; $_request->headers["x-acs-bearer-token"] = $bearerToken; if (Utils::equalString($params->style, "RPC")) { $_request->query["SignatureType"] = "BEARERTOKEN"; @@ -901,9 +905,9 @@ public function doRequest($params, $request, $runtime) $_request->headers["x-acs-signature-type"] = "BEARERTOKEN"; } } else { - $accessKeyId = $this->getAccessKeyId(); - $accessKeySecret = $this->getAccessKeySecret(); - $securityToken = $this->getSecurityToken(); + $accessKeyId = $credentialModel->accessKeyId; + $accessKeySecret = $credentialModel->accessKeySecret; + $securityToken = $credentialModel->securityToken; if (!Utils::empty_($securityToken)) { $_request->headers["x-acs-accesskey-id"] = $accessKeyId; $_request->headers["x-acs-security-token"] = $securityToken; diff --git a/ts/test/client.spec.ts b/ts/test/client.spec.ts index 1b8d4c3..f4a37d5 100644 --- a/ts/test/client.spec.ts +++ b/ts/test/client.spec.ts @@ -286,8 +286,8 @@ describe('$openapi', function () { client = new OpenApi(config); assert.strictEqual(await client.getAccessKeyId(), 'ak'); assert.strictEqual(await client.getAccessKeySecret(), 'secret'); - assert.strictEqual(await client.getSecurityToken(), ''); - assert.strictEqual(await client.getBearerToken(), ''); + assert.strictEqual(await client.getSecurityToken(), undefined); + assert.strictEqual(await client.getBearerToken(), undefined); assert.strictEqual(await client.getType(), 'access_key'); assert.strictEqual(client._spi, undefined);