This commit is contained in:
2025-10-20 10:02:41 +08:00
parent a4858d47fc
commit dc0a271adf
2805 changed files with 451240 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
composer.phar
/vendor/
# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
composer.lock
.vscode/
.idea
.DS_Store
cache/
*.cache
runtime/
.php_cs.cache

View File

@@ -0,0 +1,65 @@
<?php
/*
* This document has been generated with
* https://mlocati.github.io/php-cs-fixer-configurator/#version:2.15|configurator
* you can change this configuration by importing this file.
*/
return PhpCsFixer\Config::create()
->setRiskyAllowed(true)
->setIndent(' ')
->setRules([
'@PSR2' => true,
'@PhpCsFixer' => true,
'@Symfony:risky' => true,
'concat_space' => ['spacing' => 'one'],
'array_syntax' => ['syntax' => 'short'],
'array_indentation' => true,
'combine_consecutive_unsets' => true,
'method_separation' => true,
'single_quote' => true,
'declare_equal_normalize' => true,
'function_typehint_space' => true,
'hash_to_slash_comment' => true,
'include' => true,
'lowercase_cast' => true,
'no_multiline_whitespace_before_semicolons' => true,
'no_leading_import_slash' => true,
'no_multiline_whitespace_around_double_arrow' => true,
'no_spaces_around_offset' => true,
'no_unneeded_control_parentheses' => true,
'no_unused_imports' => true,
'no_whitespace_before_comma_in_array' => true,
'no_whitespace_in_blank_line' => true,
'object_operator_without_whitespace' => true,
'single_blank_line_before_namespace' => true,
'single_class_element_per_statement' => true,
'space_after_semicolon' => true,
'standardize_not_equals' => true,
'ternary_operator_spaces' => true,
'trailing_comma_in_multiline_array' => true,
'trim_array_spaces' => true,
'unary_operator_spaces' => true,
'whitespace_after_comma_in_array' => true,
'no_extra_consecutive_blank_lines' => [
'curly_brace_block',
'extra',
'parenthesis_brace_block',
'square_brace_block',
'throw',
'use',
],
'binary_operator_spaces' => [
'align_double_arrow' => true,
'align_equals' => true,
],
'braces' => [
'allow_single_line_closure' => true,
],
])
->setFinder(
PhpCsFixer\Finder::create()
->exclude('vendor')
->exclude('tests')
->in(__DIR__)
);

View File

@@ -0,0 +1,31 @@
[English](README.md) | 简体中文
![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
## Alibaba Cloud OpenApi Client
## 安装
### Composer
```bash
composer require alibabacloud/darabonba-openapi
```
## 问题
[提交 Issue](https://github.com/aliyun/darabonba-openapi/issues/new),不符合指南的问题可能会立即关闭。
## 发行说明
每个版本的详细更改记录在[发行说明](./ChangeLog.txt)中。
## 相关
* [最新源码](https://github.com/aliyun/darabonba-openapi)
## 许可证
[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

View File

@@ -0,0 +1,31 @@
English | [简体中文](README-CN.md)
![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
## Alibaba Cloud OpenApi Client
## Installation
### Composer
```bash
composer require alibabacloud/darabonba-openapi
```
## Issues
[Opening an Issue](https://github.com/aliyun/darabonba-openapi/issues/new), Issues not conforming to the guidelines may be closed immediately.
## Changelog
Detailed changes for each release are documented in the [release notes](./ChangeLog.txt).
## References
* [Latest Release](https://github.com/aliyun/darabonba-openapi)
## License
[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

View File

@@ -0,0 +1,15 @@
<?php
if (file_exists(__DIR__ . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php')) {
require_once __DIR__ . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
}
spl_autoload_register(function ($class) {
$name = str_replace('Darabonba\\OpenApi\\', '', $class);
$file = __DIR__ . \DIRECTORY_SEPARATOR . 'src' . \DIRECTORY_SEPARATOR . str_replace('\\', \DIRECTORY_SEPARATOR, $name) . '.php';
if (file_exists($file)) {
require_once $file;
return true;
}
return false;
});

View File

@@ -0,0 +1,34 @@
{
"name": "alibabacloud/darabonba-openapi",
"description": "Alibaba Cloud OpenApi Client",
"type": "library",
"license": "Apache-2.0",
"authors": [
{
"name": "Alibaba Cloud SDK",
"email": "sdk-team@alibabacloud.com"
}
],
"require": {
"php": ">5.5",
"alibabacloud/tea-utils": "^0.2.21",
"alibabacloud/credentials": "^1.2.2",
"alibabacloud/openapi-util": "^0.1.10|^0.2.1",
"alibabacloud/gateway-spi": "^1",
"alibabacloud/tea-xml": "^0.2"
},
"autoload": {
"psr-4": {
"Darabonba\\OpenApi\\": "src"
}
},
"scripts": {
"fixer": "php-cs-fixer fix ./"
},
"config": {
"sort-packages": true,
"preferred-install": "dist",
"optimize-autoloader": true
},
"prefer-stable": true
}

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="./tests/bootstrap.php" colors="true" processIsolation="false" stopOnFailure="false"
convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true"
testSuiteLoaderFile="phpunit/src/Runner/StandardTestSuiteLoader.php">
<testsuites>
<testsuite name="All">
<directory>tests</directory>
</testsuite>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
</testsuites>
<groups>
<exclude>
<group>integration</group>
</exclude>
</groups>
<logging>
<log type="coverage-html" target="cache/coverage" lowUpperBound="35" highLowerBound="70"/>
<log type="coverage-clover" target="cache/coverage.clover"/>
</logging>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./src</directory>
</whitelist>
</filter>
</phpunit>

View File

@@ -0,0 +1,463 @@
<?php
// This file is auto-generated, don't edit it. Thanks.
namespace Darabonba\OpenApi\Models;
use AlibabaCloud\Tea\Model;
use AlibabaCloud\Credentials\Credential;
use Darabonba\OpenApi\Models\GlobalParameters;
/**
* Model for initing client
*/
class Config extends Model
{
protected $_default = [
'accessKeyId' => '',
'accessKeySecret' => '',
'securityToken' => '',
'bearerToken' => '',
'protocol' => 'http',
'method' => '',
'regionId' => '',
'readTimeout' => '',
'connectTimeout' => '',
'httpProxy' => '',
'httpsProxy' => '',
'credential' => '',
'endpoint' => '',
'noProxy' => '',
'maxIdleConns' => '',
'network' => '',
'userAgent' => '',
'suffix' => '',
'socks5Proxy' => '',
'socks5NetWork' => '',
'endpointType' => '',
'openPlatformEndpoint' => '',
'type' => '',
'signatureVersion' => '',
'signatureAlgorithm' => '',
'key' => '',
'cert' => '',
'ca' => '',
'tlsMinVersion' => '',
];
public function validate() {}
public function toMap()
{
$res = [];
if (null !== $this->accessKeyId) {
$res['accessKeyId'] = $this->accessKeyId;
}
if (null !== $this->accessKeySecret) {
$res['accessKeySecret'] = $this->accessKeySecret;
}
if (null !== $this->securityToken) {
$res['securityToken'] = $this->securityToken;
}
if (null !== $this->bearerToken) {
$res['bearerToken'] = $this->bearerToken;
}
if (null !== $this->protocol) {
$res['protocol'] = $this->protocol;
}
if (null !== $this->method) {
$res['method'] = $this->method;
}
if (null !== $this->regionId) {
$res['regionId'] = $this->regionId;
}
if (null !== $this->readTimeout) {
$res['readTimeout'] = $this->readTimeout;
}
if (null !== $this->connectTimeout) {
$res['connectTimeout'] = $this->connectTimeout;
}
if (null !== $this->httpProxy) {
$res['httpProxy'] = $this->httpProxy;
}
if (null !== $this->httpsProxy) {
$res['httpsProxy'] = $this->httpsProxy;
}
if (null !== $this->credential) {
$res['credential'] = null !== $this->credential ? $this->credential->toMap() : null;
}
if (null !== $this->endpoint) {
$res['endpoint'] = $this->endpoint;
}
if (null !== $this->noProxy) {
$res['noProxy'] = $this->noProxy;
}
if (null !== $this->maxIdleConns) {
$res['maxIdleConns'] = $this->maxIdleConns;
}
if (null !== $this->network) {
$res['network'] = $this->network;
}
if (null !== $this->userAgent) {
$res['userAgent'] = $this->userAgent;
}
if (null !== $this->suffix) {
$res['suffix'] = $this->suffix;
}
if (null !== $this->socks5Proxy) {
$res['socks5Proxy'] = $this->socks5Proxy;
}
if (null !== $this->socks5NetWork) {
$res['socks5NetWork'] = $this->socks5NetWork;
}
if (null !== $this->endpointType) {
$res['endpointType'] = $this->endpointType;
}
if (null !== $this->openPlatformEndpoint) {
$res['openPlatformEndpoint'] = $this->openPlatformEndpoint;
}
if (null !== $this->type) {
$res['type'] = $this->type;
}
if (null !== $this->signatureVersion) {
$res['signatureVersion'] = $this->signatureVersion;
}
if (null !== $this->signatureAlgorithm) {
$res['signatureAlgorithm'] = $this->signatureAlgorithm;
}
if (null !== $this->globalParameters) {
$res['globalParameters'] = null !== $this->globalParameters ? $this->globalParameters->toMap() : null;
}
if (null !== $this->key) {
$res['key'] = $this->key;
}
if (null !== $this->cert) {
$res['cert'] = $this->cert;
}
if (null !== $this->ca) {
$res['ca'] = $this->ca;
}
if (null !== $this->disableHttp2) {
$res['disableHttp2'] = $this->disableHttp2;
}
if (null !== $this->tlsMinVersion) {
$res['tlsMinVersion'] = $this->tlsMinVersion;
}
return $res;
}
/**
* @param array $map
* @return Config
*/
public static function fromMap($map = [])
{
$model = new self();
if (isset($map['accessKeyId'])) {
$model->accessKeyId = $map['accessKeyId'];
}
if (isset($map['accessKeySecret'])) {
$model->accessKeySecret = $map['accessKeySecret'];
}
if (isset($map['securityToken'])) {
$model->securityToken = $map['securityToken'];
}
if (isset($map['bearerToken'])) {
$model->bearerToken = $map['bearerToken'];
}
if (isset($map['protocol'])) {
$model->protocol = $map['protocol'];
}
if (isset($map['method'])) {
$model->method = $map['method'];
}
if (isset($map['regionId'])) {
$model->regionId = $map['regionId'];
}
if (isset($map['readTimeout'])) {
$model->readTimeout = $map['readTimeout'];
}
if (isset($map['connectTimeout'])) {
$model->connectTimeout = $map['connectTimeout'];
}
if (isset($map['httpProxy'])) {
$model->httpProxy = $map['httpProxy'];
}
if (isset($map['httpsProxy'])) {
$model->httpsProxy = $map['httpsProxy'];
}
if (isset($map['credential'])) {
$model->credential = Credential::fromMap($map['credential']);
}
if (isset($map['endpoint'])) {
$model->endpoint = $map['endpoint'];
}
if (isset($map['noProxy'])) {
$model->noProxy = $map['noProxy'];
}
if (isset($map['maxIdleConns'])) {
$model->maxIdleConns = $map['maxIdleConns'];
}
if (isset($map['network'])) {
$model->network = $map['network'];
}
if (isset($map['userAgent'])) {
$model->userAgent = $map['userAgent'];
}
if (isset($map['suffix'])) {
$model->suffix = $map['suffix'];
}
if (isset($map['socks5Proxy'])) {
$model->socks5Proxy = $map['socks5Proxy'];
}
if (isset($map['socks5NetWork'])) {
$model->socks5NetWork = $map['socks5NetWork'];
}
if (isset($map['endpointType'])) {
$model->endpointType = $map['endpointType'];
}
if (isset($map['openPlatformEndpoint'])) {
$model->openPlatformEndpoint = $map['openPlatformEndpoint'];
}
if (isset($map['type'])) {
$model->type = $map['type'];
}
if (isset($map['signatureVersion'])) {
$model->signatureVersion = $map['signatureVersion'];
}
if (isset($map['signatureAlgorithm'])) {
$model->signatureAlgorithm = $map['signatureAlgorithm'];
}
if (isset($map['globalParameters'])) {
$model->globalParameters = GlobalParameters::fromMap($map['globalParameters']);
}
if (isset($map['key'])) {
$model->key = $map['key'];
}
if (isset($map['cert'])) {
$model->cert = $map['cert'];
}
if (isset($map['ca'])) {
$model->ca = $map['ca'];
}
if (isset($map['disableHttp2'])) {
$model->disableHttp2 = $map['disableHttp2'];
}
if (isset($map['tlsMinVersion'])) {
$model->tlsMinVersion = $map['tlsMinVersion'];
}
return $model;
}
/**
* @description accesskey id
* @var string
*/
public $accessKeyId;
/**
* @description accesskey secret
* @var string
*/
public $accessKeySecret;
/**
* @description security token
* @example a.txt
* @var string
*/
public $securityToken;
/**
* @description bearer token
* @example the-bearer-token
* @var string
*/
public $bearerToken;
/**
* @description http protocol
* @example http
* @var string
*/
public $protocol;
/**
* @description http method
* @example GET
* @var string
*/
public $method;
/**
* @description region id
* @example cn-hangzhou
* @var string
*/
public $regionId;
/**
* @description read timeout
* @example 10
* @var int
*/
public $readTimeout;
/**
* @description connect timeout
* @example 10
* @var int
*/
public $connectTimeout;
/**
* @description http proxy
* @example http://localhost
* @var string
*/
public $httpProxy;
/**
* @description https proxy
* @example https://localhost
* @var string
*/
public $httpsProxy;
/**
* @description credential
* @example
* @var Credential
*/
public $credential;
/**
* @description endpoint
* @example cs.aliyuncs.com
* @var string
*/
public $endpoint;
/**
* @description proxy white list
* @example http://localhost
* @var string
*/
public $noProxy;
/**
* @description max idle conns
* @example 3
* @var int
*/
public $maxIdleConns;
/**
* @description network for endpoint
* @example public
* @var string
*/
public $network;
/**
* @description user agent
* @example Alibabacloud/1
* @var string
*/
public $userAgent;
/**
* @description suffix for endpoint
* @example aliyun
* @var string
*/
public $suffix;
/**
* @description socks5 proxy
* @var string
*/
public $socks5Proxy;
/**
* @description socks5 network
* @example TCP
* @var string
*/
public $socks5NetWork;
/**
* @description endpoint type
* @example internal
* @var string
*/
public $endpointType;
/**
* @description OpenPlatform endpoint
* @example openplatform.aliyuncs.com
* @var string
*/
public $openPlatformEndpoint;
/**
* @description credential type
* @example access_key
* @deprecated
* @var string
*/
public $type;
/**
* @description Signature Version
* @example v1
* @var string
*/
public $signatureVersion;
/**
* @description Signature Algorithm
* @example ACS3-HMAC-SHA256
* @var string
*/
public $signatureAlgorithm;
/**
* @description Global Parameters
* @var GlobalParameters
*/
public $globalParameters;
/**
* @description privite key for client certificate
* @example MIIEvQ
* @var string
*/
public $key;
/**
* @description client certificate
* @example -----BEGIN CERTIFICATE-----
xxx-----END CERTIFICATE-----
* @var string
*/
public $cert;
/**
* @description server certificate
* @example -----BEGIN CERTIFICATE-----
xxx-----END CERTIFICATE-----
* @var string
*/
public $ca;
/**
* @description disable HTTP/2
* @example false
* @var bool
*/
public $disableHttp2;
/**
* @description TLS Minimum Version
* @example TLSv1, TLSv1.1, TLSv1.2, TLSv1.3
* @var string
*/
public $tlsMinVersion;
}

View File

@@ -0,0 +1,40 @@
<?php
// This file is auto-generated, don't edit it. Thanks.
namespace Darabonba\OpenApi\Models;
use AlibabaCloud\Tea\Model;
class GlobalParameters extends Model
{
public function validate() {}
public function toMap()
{
$res = [];
if (null !== $this->headers) {
$res['headers'] = $this->headers;
}
if (null !== $this->queries) {
$res['queries'] = $this->queries;
}
return $res;
}
/**
* @param array $map
* @return GlobalParameters
*/
public static function fromMap($map = [])
{
$model = new self();
if (isset($map['headers'])) {
$model->headers = $map['headers'];
}
if (isset($map['queries'])) {
$model->queries = $map['queries'];
}
return $model;
}
public $headers;
public $queries;
}

View File

@@ -0,0 +1,72 @@
<?php
// This file is auto-generated, don't edit it. Thanks.
namespace Darabonba\OpenApi\Models;
use AlibabaCloud\Tea\Model;
class OpenApiRequest extends Model
{
public function validate() {}
public function toMap()
{
$res = [];
if (null !== $this->headers) {
$res['headers'] = $this->headers;
}
if (null !== $this->query) {
$res['query'] = $this->query;
}
if (null !== $this->body) {
$res['body'] = $this->body;
}
if (null !== $this->stream) {
$res['stream'] = $this->stream;
}
if (null !== $this->hostMap) {
$res['hostMap'] = $this->hostMap;
}
if (null !== $this->endpointOverride) {
$res['endpointOverride'] = $this->endpointOverride;
}
return $res;
}
/**
* @param array $map
* @return OpenApiRequest
*/
public static function fromMap($map = [])
{
$model = new self();
if (isset($map['headers'])) {
$model->headers = $map['headers'];
}
if (isset($map['query'])) {
$model->query = $map['query'];
}
if (isset($map['body'])) {
$model->body = $map['body'];
}
if (isset($map['stream'])) {
$model->stream = $map['stream'];
}
if (isset($map['hostMap'])) {
$model->hostMap = $map['hostMap'];
}
if (isset($map['endpointOverride'])) {
$model->endpointOverride = $map['endpointOverride'];
}
return $model;
}
public $headers;
public $query;
public $body;
public $stream;
public $hostMap;
public $endpointOverride;
}

View File

@@ -0,0 +1,130 @@
<?php
// This file is auto-generated, don't edit it. Thanks.
namespace Darabonba\OpenApi\Models;
use AlibabaCloud\Tea\Model;
class Params extends Model
{
public function validate()
{
Model::validateRequired('action', $this->action, true);
Model::validateRequired('version', $this->version, true);
Model::validateRequired('protocol', $this->protocol, true);
Model::validateRequired('pathname', $this->pathname, true);
Model::validateRequired('method', $this->method, true);
Model::validateRequired('authType', $this->authType, true);
Model::validateRequired('bodyType', $this->bodyType, true);
Model::validateRequired('reqBodyType', $this->reqBodyType, true);
}
public function toMap()
{
$res = [];
if (null !== $this->action) {
$res['action'] = $this->action;
}
if (null !== $this->version) {
$res['version'] = $this->version;
}
if (null !== $this->protocol) {
$res['protocol'] = $this->protocol;
}
if (null !== $this->pathname) {
$res['pathname'] = $this->pathname;
}
if (null !== $this->method) {
$res['method'] = $this->method;
}
if (null !== $this->authType) {
$res['authType'] = $this->authType;
}
if (null !== $this->bodyType) {
$res['bodyType'] = $this->bodyType;
}
if (null !== $this->reqBodyType) {
$res['reqBodyType'] = $this->reqBodyType;
}
if (null !== $this->style) {
$res['style'] = $this->style;
}
return $res;
}
/**
* @param array $map
* @return Params
*/
public static function fromMap($map = [])
{
$model = new self();
if (isset($map['action'])) {
$model->action = $map['action'];
}
if (isset($map['version'])) {
$model->version = $map['version'];
}
if (isset($map['protocol'])) {
$model->protocol = $map['protocol'];
}
if (isset($map['pathname'])) {
$model->pathname = $map['pathname'];
}
if (isset($map['method'])) {
$model->method = $map['method'];
}
if (isset($map['authType'])) {
$model->authType = $map['authType'];
}
if (isset($map['bodyType'])) {
$model->bodyType = $map['bodyType'];
}
if (isset($map['reqBodyType'])) {
$model->reqBodyType = $map['reqBodyType'];
}
if (isset($map['style'])) {
$model->style = $map['style'];
}
return $model;
}
/**
* @var string
*/
public $action;
/**
* @var string
*/
public $version;
/**
* @var string
*/
public $protocol;
/**
* @var string
*/
public $pathname;
/**
* @var string
*/
public $method;
/**
* @var string
*/
public $authType;
/**
* @var string
*/
public $bodyType;
/**
* @var string
*/
public $reqBodyType;
public $style;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,329 @@
<?php
namespace Darabonba\OpenApi\Tests;
use Darabonba\OpenApi\OpenApiClient;
use AlibabaCloud\Tea\Model;
use AlibabaCloud\Tea\Request;
use AlibabaCloud\Tea\Utils\Utils;
use PHPUnit\Framework\TestCase;
/**
* @internal
* @coversNothing
*/
class OpenApiClientTest extends TestCase
{
public function testConfig(){
$globalParameters = new GlobalParameters([
"headers" => [
"global-key" => "global-value"
],
"queries" => [
"global-query" => "global-value"
]
]);
$config = new Config([
"endpoint" => "config.endpoint",
"endpointType" => "regional",
"network" => "config.network",
"suffix" => "config.suffix",
"protocol" => "config.protocol",
"method" => "config.method",
"regionId" => "config.regionId",
"userAgent" => "config.userAgent",
"readTimeout" => 3000,
"connectTimeout" => 3000,
"httpProxy" => "config.httpProxy",
"httpsProxy" => "config.httpsProxy",
"noProxy" => "config.noProxy",
"socks5Proxy" => "config.socks5Proxy",
"socks5NetWork" => "config.socks5NetWork",
"maxIdleConns" => 128,
"signatureVersion" => "config.signatureVersion",
"signatureAlgorithm" => "config.signatureAlgorithm",
"globalParameters" => $globalParameters
]);
$creConfig = new \AlibabaCloud\Credentials\Credential\Config([
"accessKeyId" => "accessKeyId",
"accessKeySecret" => "accessKeySecret",
"securityToken" => "securityToken",
"type" => "sts"
]);
$credential = new Credential($creConfig);
$config->credential = $credential;
$client = new OpenApiClient($config);
$config->accessKeyId = "ak";
$config->accessKeySecret = "secret";
$config->securityToken = "token";
$config->type = "sts";
$client = new OpenApiClient($config);
}
/**
* @return Config
*/
public static function createConfig(){
$globalParameters = new GlobalParameters([
"headers" => [
"global-key" => "global-value"
],
"queries" => [
"global-query" => "global-value"
]
]);
$config = new Config([
"accessKeyId" => "ak",
"accessKeySecret" => "secret",
"securityToken" => "token",
"type" => "sts",
"userAgent" => "config.userAgent",
"readTimeout" => 3000,
"connectTimeout" => 3000,
"maxIdleConns" => 128,
"signatureVersion" => "config.signatureVersion",
"signatureAlgorithm" => "ACS3-HMAC-SHA256",
"globalParameters" => $globalParameters,
"tlsMinVersion" => "TLSv1.2"
]);
return $config;
}
/**
* @return RuntimeOptions
*/
public static function createRuntimeOptions(){
$runtime = new RuntimeOptions([
"readTimeout" => 4000,
"connectTimeout" => 4000,
"maxIdleConns" => 100,
"autoretry" => true,
"maxAttempts" => 1,
"backoffPolicy" => "no",
"backoffPeriod" => 1,
"ignoreSSL" => true
]);
return $runtime;
}
/**
* @return OpenApiRequest
*/
public static function createOpenApiRequest(){
$query = [];
$query["key1"] = "value";
$query["key2"] = 1;
$query["key3"] = true;
$body = [];
$body["key1"] = "value";
$body["key2"] = 1;
$body["key3"] = true;
$headers = [
"for-test" => "sdk"
];
$req = new OpenApiRequest([
"headers" => $headers,
"query" => OpenApiUtilClient::query($query),
"body" => OpenApiUtilClient::parseToMap($body)
]);
return $req;
}
public function testCallApiForRPCWithV2Sign_AK_Form(){
$config = self::createConfig();
$runtime = self::createRuntimeOptions();
$config->protocol = "HTTP";
$config->signatureAlgorithm = "v2";
$config->endpoint = "test.aliyuncs.com";
$client = new OpenApiClient($config);
$request = self::createOpenApiRequest();
$params = new Params([
"action" => "TestAPI",
"version" => "2022-06-01",
"protocol" => "HTTPS",
"pathname" => "/",
"method" => "POST",
"authType" => "AK",
"style" => "RPC",
"reqBodyType" => "formData",
"bodyType" => "json"
]);
$client->callApi($params, $request, $runtime);
}
public function testCallApiForRPCWithV2Sign_Anonymous_JSON(){
$config = self::createConfig();
$runtime = self::createRuntimeOptions();
$config->protocol = "HTTP";
$config->signatureAlgorithm = "v2";
$config->endpoint = "test.aliyuncs.com";
$client = new OpenApiClient($config);
$request = self::createOpenApiRequest();
$params = new Params([
"action" => "TestAPI",
"version" => "2022-06-01",
"protocol" => "HTTPS",
"pathname" => "/",
"method" => "POST",
"authType" => "Anonymous",
"style" => "RPC",
"reqBodyType" => "json",
"bodyType" => "json"
]);
$client->callApi($params, $request, $runtime);
}
public function testCallApiForROAWithV2Sign_HTTPS_AK_Form(){
$config = self::createConfig();
$runtime = self::createRuntimeOptions();
$config->signatureAlgorithm = "v2";
$config->endpoint = "test.aliyuncs.com";
$client = new OpenApiClient($config);
$request = self::createOpenApiRequest();
$params = new Params([
"action" => "TestAPI",
"version" => "2022-06-01",
"protocol" => "HTTPS",
"pathname" => "/test",
"method" => "POST",
"authType" => "AK",
"style" => "ROA",
"reqBodyType" => "formData",
"bodyType" => "json"
]);
$client->callApi($params, $request, $runtime);
}
public function testCallApiForROAWithV2Sign_Anonymous_JSON(){
$config = self::createConfig();
$runtime = self::createRuntimeOptions();
$config->protocol = "HTTP";
$config->signatureAlgorithm = "v2";
$config->endpoint = "test.aliyuncs.com";
$client = new OpenApiClient($config);
$request = self::createOpenApiRequest();
$params = new Params([
"action" => "TestAPI",
"version" => "2022-06-01",
"protocol" => "HTTPS",
"pathname" => "/test",
"method" => "POST",
"authType" => "Anonymous",
"style" => "ROA",
"reqBodyType" => "json",
"bodyType" => "json"
]);
$client->callApi($params, $request, $runtime);
}
public function testCallApiForRPCWithV3Sign_AK_Form(){
$config = self::createConfig();
$runtime = self::createRuntimeOptions();
$config->protocol = "HTTP";
$config->endpoint = "test.aliyuncs.com";
$client = new OpenApiClient($config);
$request = self::createOpenApiRequest();
$params = new Params([
"action" => "TestAPI",
"version" => "2022-06-01",
"protocol" => "HTTPS",
"pathname" => "/",
"method" => "POST",
"authType" => "AK",
"style" => "RPC",
"reqBodyType" => "formData",
"bodyType" => "json"
]);
$client->callApi($params, $request, $runtime);
}
public function testCallApiForRPCWithV3Sign_Anonymous_JSON(){
$config = self::createConfig();
$runtime = self::createRuntimeOptions();
$config->protocol = "HTTP";
$config->endpoint = "test.aliyuncs.com";
$client = new OpenApiClient($config);
$request = self::createOpenApiRequest();
$params = new Params([
"action" => "TestAPI",
"version" => "2022-06-01",
"protocol" => "HTTPS",
"pathname" => "/",
"method" => "POST",
"authType" => "Anonymous",
"style" => "RPC",
"reqBodyType" => "json",
"bodyType" => "json"
]);
$client->callApi($params, $request, $runtime);
}
public function testCallApiForROAWithV3Sign_AK_Form(){
$config = self::createConfig();
$runtime = self::createRuntimeOptions();
$config->protocol = "HTTP";
$config->endpoint = "test.aliyuncs.com";
$client = new OpenApiClient($config);
$request = self::createOpenApiRequest();
$params = new Params([
"action" => "TestAPI",
"version" => "2022-06-01",
"protocol" => "HTTPS",
"pathname" => "/test",
"method" => "POST",
"authType" => "AK",
"style" => "ROA",
"reqBodyType" => "formData",
"bodyType" => "json"
]);
$client->callApi($params, $request, $runtime);
}
public function testCallApiForROAWithV3Sign_Anonymous_JSON(){
$config = self::createConfig();
$runtime = self::createRuntimeOptions();
$config->protocol = "HTTP";
$config->endpoint = "test.aliyuncs.com";
$client = new OpenApiClient($config);
$request = self::createOpenApiRequest();
$params = new Params([
"action" => "TestAPI",
"version" => "2022-06-01",
"protocol" => "HTTPS",
"pathname" => "/test",
"method" => "POST",
"authType" => "Anonymous",
"style" => "ROA",
"reqBodyType" => "json",
"bodyType" => "json"
]);
$client->callApi($params, $request, $runtime);
}
public function testResponseBodyType(){
$config = self::createConfig();
$runtime = self::createRuntimeOptions();
$config->protocol = "HTTP";
$config->endpoint = "test.aliyuncs.com";
$client = new OpenApiClient($config);
$request = self::createOpenApiRequest();
$params = new Params([
"action" => "TestAPI",
"version" => "2022-06-01",
"protocol" => "HTTPS",
"pathname" => "/test",
"method" => "POST",
"authType" => "AK",
"style" => "ROA",
"reqBodyType" => "formData",
"bodyType" => "json"
]);
$client->callApi($params, $request, $runtime);
$params->bodyType = "array";
$client->callApi($params, $request, $runtime);
$params->bodyType = "string";
$client->callApi($params, $request, $runtime);
$params->bodyType = "byte";
$client->callApi($params, $request, $runtime);
}
}

View File

@@ -0,0 +1,3 @@
<?php
require dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';