日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

泛化調(diào)用

更新時(shí)間:

阿里云SDK不僅支持使用云產(chǎn)品SDK提供的特化調(diào)用方式調(diào)用OpenAPI,還支持使用核心SDK提供的泛化調(diào)用方式調(diào)用OpenAPI,兩種方式的不同請(qǐng)參見(jiàn)泛化調(diào)用與特化調(diào)用。本文將從獲取API信息、安裝SDK和代碼示例來(lái)為您介紹如何使用泛化調(diào)用。

獲取API信息

訪問(wèn)API文檔選擇云產(chǎn)品,例如選擇云服務(wù)器ECS。

  1. 單擊云服務(wù)器名稱(chēng)下面的獲取元數(shù)據(jù),在元數(shù)據(jù)中info.style查看云產(chǎn)品支持的OpenAPI風(fēng)格(RPC或者ROA)。

    image

    image

    說(shuō)明

    該位置獲取的元數(shù)據(jù)中包含了云產(chǎn)品的所有API信息,如果您想要查看單個(gè)API的元數(shù)據(jù),請(qǐng)查看步驟2。

  2. 選擇將要調(diào)用的API,單擊右上角獲取元數(shù)據(jù)

    image

    在元數(shù)據(jù)中,定義了API支持的網(wǎng)絡(luò)協(xié)議、請(qǐng)求方式、參數(shù)及參數(shù)位置等信息。如下圖所示的RunInstances元數(shù)據(jù)中:

    • 支持的網(wǎng)絡(luò)協(xié)議有HTTP和HTTPS,建議使用HTTPS。

    • 支持的請(qǐng)求方式有GET和POST,兩者請(qǐng)求方式調(diào)用結(jié)果無(wú)任何差異,但GET請(qǐng)求只支持 32 KB 以?xún)?nèi)的請(qǐng)求包,所以推薦使用POST請(qǐng)求。

    • 支持的參數(shù)有RegionId、ImageId等,參數(shù)位置在query,表示參數(shù)是要拼接在請(qǐng)求URL后面,例如https://ecs.cn-beijing.aliyuncs.com/?ImageId=aliyun_2_1903_x64_20G_alibase_20231221.vhd&InstanceChargeType=PostPaid&InstanceType=ecs.e-c1m1.large&InternetChargeType=PayByTraffic&MinAmount=1&Password=test%401234&RegionId=cn-beijing&SecurityGroupId=sg-2zec0dm6qi66XXXXXXXX&SystemDisk.Category=cloud_essd&SystemDisk.Size=40&VSwitchId=vsw-2ze3aagwn397gXXXXXXXX。

    image

    說(shuō)明

    元數(shù)據(jù)中其他支持的內(nèi)容對(duì)簽名無(wú)影響,這里暫不詳細(xì)說(shuō)明。更多元數(shù)據(jù)的信息,請(qǐng)參見(jiàn)元數(shù)據(jù)使用指南

安裝SDK

在Terminal中執(zhí)行以下命令安裝核心SDK。

pip install alibabacloud-tea-openapi

代碼示例

示例:調(diào)用RPC風(fēng)格的API

以調(diào)用ECS的DescribeRegions接口為例,展示如何使用泛化調(diào)用方式。

import os

from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_openapi.client import Client as OpenApiClient
from alibabacloud_tea_util import models as util_models


class Sample:
    @staticmethod
    def main():
        # 從環(huán)境變量中獲取訪問(wèn)密鑰
        config = open_api_models.Config(
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
        )
        # 設(shè)置服務(wù)接入點(diǎn)
        config.endpoint = f'ecs-cn-hangzhou.aliyuncs.com'
        client = OpenApiClient(config)
        params = open_api_models.Params(
            style='RPC',  # API風(fēng)格
            version='2014-05-26',  # API版本號(hào)
            action='DescribeRegions',  # API 名稱(chēng)
            method='POST',  # 請(qǐng)求方法
            pathname='/',  # 接口 PATH
            protocol='HTTPS',  # 接口協(xié)議,
            auth_type='AK',
            req_body_type='json',  # 接口請(qǐng)求體內(nèi)容格式,
            body_type='json'  # 接口響應(yīng)體內(nèi)容格式,
        )

        # 添加查詢(xún)參數(shù)和請(qǐng)求體
        query = {'InstanceChargeType': 'PrePaid'}
        # 創(chuàng)建API請(qǐng)求對(duì)象
        request = open_api_models.OpenApiRequest(
            query=query,
        )
        # 創(chuàng)建運(yùn)行時(shí)選項(xiàng)對(duì)象
        runtime = util_models.RuntimeOptions()
        # 發(fā)起API調(diào)用并打印響應(yīng)
        response = client.call_api(params, request, runtime)
        print(response)

    @staticmethod
    async def main_async():
        """
        異步主函數(shù),用于演示如何使用異步方式調(diào)用阿里云 API。
        """
        # 從環(huán)境變量中獲取訪問(wèn)密鑰
        config = open_api_models.Config(
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
        )
        # 設(shè)置服務(wù)接入點(diǎn)
        config.endpoint = f'ecs-cn-hangzhou.aliyuncs.com'
        client = OpenApiClient(config)
        params = open_api_models.Params(
            style='RPC',  # API風(fēng)格
            version='2014-05-26',  # API版本號(hào)
            action='DescribeRegions',  # API 名稱(chēng)
            method='POST',  # 請(qǐng)求方法
            pathname='/',  # 接口 PATH
            protocol='HTTPS',  # 接口協(xié)議,
            auth_type='AK',
            req_body_type='json',  # 接口請(qǐng)求體內(nèi)容格式,
            body_type='json'  # 接口響應(yīng)體內(nèi)容格式,
        )

        # 添加query參數(shù)
        query = {'InstanceChargeType': 'PrePaid'}
        # 創(chuàng)建API請(qǐng)求對(duì)象
        request = open_api_models.OpenApiRequest(
            query=query,
        )
        # 創(chuàng)建運(yùn)行時(shí)選項(xiàng)對(duì)象
        runtime = util_models.RuntimeOptions()
        # 發(fā)起異步API調(diào)用
        await client.call_api_async(params, request, runtime)


if __name__ == '__main__':
    Sample.main()

示例:調(diào)用RESTful(ROA)風(fēng)格的API

以調(diào)用容器服務(wù)查詢(xún)集群列表信息為例,展示如何使用泛化調(diào)用。

import os

from alibabacloud_openapi_util.client import Client as OpenApiUtilClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_openapi.client import Client as OpenApiClient
from alibabacloud_tea_util import models as util_models


class Sample:
    @staticmethod
    def main() -> None:
        # 從環(huán)境變量中獲取訪問(wèn)密鑰ID和密鑰Secret
        config = open_api_models.Config(
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
        )
        config.endpoint = f'cs.cn-qingdao.aliyuncs.com'
        client = OpenApiClient(config)
        params = open_api_models.Params(
            # 接口名稱(chēng),
            action='DescribeClustersV1',
            # 接口版本,
            version='2015-12-15',
            # 接口協(xié)議,
            protocol='HTTPS',
            # 接口 HTTP 方法,
            method='GET',
            auth_type='AK',
            style='ROA',
            # 接口 PATH,
            pathname=f'/api/v1/clusters',
            # 接口請(qǐng)求體內(nèi)容格式,
            req_body_type='json',
            # 接口響應(yīng)體內(nèi)容格式,
            body_type='json'
        )
        # query params
        queries = {'name': 'cluster-demo'}
        request = open_api_models.OpenApiRequest(
            query=OpenApiUtilClient.query(queries)
        )
        # runtime options
        runtime = util_models.RuntimeOptions()
        # 返回值為 Map 類(lèi)型,可從 Map 中獲得三類(lèi)數(shù)據(jù):響應(yīng)體 body、響應(yīng)頭 headers、HTTP 返回的狀態(tài)碼 statusCode。
        response = client.call_api(params, request, runtime)
        print(response)

    @staticmethod
    async def main_async() -> None:
        # 從環(huán)境變量中獲取訪問(wèn)密鑰ID和密鑰Secret
        config = open_api_models.Config(
            access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
            access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
        )
        config.endpoint = f'cs.cn-qingdao.aliyuncs.com'
        client = OpenApiClient(config)
        params = open_api_models.Params(
            # 接口名稱(chēng),
            action='DescribeClustersV1',
            # 接口版本,
            version='2015-12-15',
            # 接口協(xié)議,
            protocol='HTTPS',
            # 接口 HTTP 方法,
            method='GET',
            auth_type='AK',
            style='ROA',
            # 接口 PATH,
            pathname=f'/api/v1/clusters',
            # 接口請(qǐng)求體內(nèi)容格式,
            req_body_type='json',
            # 接口響應(yīng)體內(nèi)容格式,
            body_type='json'
        )
        # query params
        queries = {'name': 'cluster-demo'}
        request = open_api_models.OpenApiRequest(
            query=OpenApiUtilClient.query(queries)
        )
        # runtime options
        runtime = util_models.RuntimeOptions()
        # 返回值為 Map 類(lèi)型,可從 Map 中獲得三類(lèi)數(shù)據(jù):響應(yīng)體 body、響應(yīng)頭 headers、HTTP 返回的狀態(tài)碼 statusCode。
        await client.call_api_async(params, request, runtime)


if __name__ == '__main__':
    Sample.main()