全部产品
Search
文档中心

Alibaba Cloud SDK:Pemanggilan generik

更新时间:Jul 06, 2025

Alibaba Cloud SDK for Java V2.0 mendukung pemanggilan API generik. Dokumen ini menjelaskan cara melakukan pemanggilan generik menggunakan Alibaba Cloud SDK for Java V2.0.

Karakteristik

Ringan: Anda dapat menggunakan Alibaba Cloud SDK V2.0 untuk .NET untuk memanggil operasi API hanya dengan menginstal pustaka inti dari Alibaba Cloud SDK, tanpa perlu menginstal SDK untuk setiap layanan.

Mudah digunakan: Anda hanya perlu membuat parameter permintaan umum dan menggunakan klien umum untuk memulai permintaan. Respons dikembalikan dalam format umum.

Untuk informasi lebih lanjut, lihat Pemanggilan generik dan pemanggilan spesifik.

Catatan penggunaan

Sebelum melakukan pemanggilan generik, disarankan untuk melihat metadata dari operasi API untuk mendapatkan gaya API, parameter permintaan, dan URL.

Instal SDK

Jalankan perintah berikut di terminal untuk menginstal pustaka inti dari Alibaba Cloud SDK V2.0 untuk .NET. Untuk informasi lebih lanjut tentang versi terbaru dari pustaka inti, lihat AlibabaCloud.OpenApiClient.

dotnet add package AlibabaCloud.OpenApiClient --version 0.1.13

Panggil operasi API

Inisialisasi klien permintaan

Buat objek AlibabaCloud.OpenApiClient.Client untuk menginisialisasi klien permintaan, dan gunakan klien tersebut untuk memanggil operasi API. Saat menginisialisasi klien, Anda juga dapat menggunakan alat Credentials. Untuk informasi lebih lanjut tentang alat Credentials, lihat Kelola kredensial akses.

        public static AlibabaCloud.OpenApiClient.Client CreateClient()
        {
            AlibabaCloud.OpenApiClient.Models.Config config =
                new AlibabaCloud.OpenApiClient.Models.Config
                {
                    // Diperlukan. Pastikan variabel lingkungan berikut diatur dalam lingkungan runtime kode: ALIBABA_CLOUD_ACCESS_KEY_ID. 
                    AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                    // Diperlukan. Pastikan variabel lingkungan berikut diatur dalam lingkungan runtime kode: ALIBABA_CLOUD_ACCESS_KEY_SECRET. 
                    AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
                };
            config.Endpoint = "ecs-cn-hangzhou.aliyuncs.com";
            return new AlibabaCloud.OpenApiClient.Client(config);
        }
        
        // Gunakan alat Credentials.
        // public static AlibabaCloud.OpenApiClient.Client CreateClient()
        // {
        //     // Gunakan pasangan AccessKey untuk menginisialisasi klien Credentials. 
        //     Aliyun.Credentials.Models.Config credentialsConfig =
        //         new Aliyun.Credentials.Models.Config()
        //         {
        //             // Jenis kredensial. 
        //             Type = "access_key",
        //             // Dapatkan ID AccessKey dari variabel lingkungan. 
        //             AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
        //             // Dapatkan rahasia AccessKey dari variabel lingkungan. 
        //             AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
        //         };
        //     Aliyun.Credentials.Client credentialClient = new Aliyun.Credentials.Client(credentialsConfig);
        //     AlibabaCloud.OpenApiClient.Models.Config config =
        //         new AlibabaCloud.OpenApiClient.Models.Config
        //         {
        //             Credential = credentialClient,
        //             Endpoint = "ecs-cn-hangzhou.aliyuncs.com",
        //         };

        //     return new AlibabaCloud.OpenApiClient.Client(config);
        // }

Konfigurasikan informasi tentang operasi API

Gunakan AlibabaCloud.OpenApiClient.Models.Params untuk mengonfigurasi informasi dasar tentang operasi API, seperti gaya API, versi API, dan metode permintaan. Dalam contoh berikut, operasi DescribeInstanceTypeFamilies dipanggil.

        AlibabaCloud.OpenApiClient.Models.Params params_ =
            new AlibabaCloud.OpenApiClient.Models.Params
            {
                Action = "DescribeInstanceTypeFamilies", // Operasi API. 
                Version = "2014-05-26", // Nomor versi operasi API. 
                Protocol = "HTTPS", // Protokol permintaan. Nilai yang valid: HTTP dan HTTPS. Kami sarankan Anda menggunakan HTTPS. 
                Method = "POST", // Metode permintaan. 
                AuthType = "AK", // Jenis autentikasi. Gunakan tipe default. Jika operasi API mendukung permintaan anonim, Anda dapat menentukan parameter Anonymous untuk memulai permintaan anonim. 
                Style = "RPC", // Gaya API, seperti remote procedure call (RPC) dan resource-oriented architecture (ROA). 
                Pathname = "/", // URL operasi API. Jalur default operasi bergaya RPC adalah /. Anda bisa mendapatkan URL operasi bergaya ROA dari parameter data.path dalam metadata API. 
                ReqBodyType = "json", // Tipe body permintaan. Nilai yang valid: json dan formData. 
                BodyType = "json", // Format respons. Nilai yang valid: json. 
            };

Konfigurasikan parameter permintaan

Gunakan AlibabaCloud.OpenApiClient.Models.OpenApiRequest untuk mengonfigurasi parameter permintaan. Anda dapat melewati parameter permintaan dalam string kueri, body, atau aliran. Pilih metode untuk melewati parameter permintaan berdasarkan metadata dari operasi API. Sebagai contoh, parameter permintaan RegionId dari operasi API DescribeInstanceTypeFamilies didefinisikan sebagai {"name":"RegionId","in":"query",...}} dalam metadata. "in":"query" menunjukkan bahwa parameter RegionId dilewatkan dalam string kueri.

Metode

Deskripsi

Query

Jika metadata mendefinisikan "in":"query", lewati parameter dalam string kueri.

Body

Jika metadata mendefinisikan "in":"body'' atau "in": "formData", lewati parameter dalam body permintaan. Jika Anda melewati parameter permintaan dalam body permintaan, tentukan nilai untuk parameter reqBodyType berdasarkan tipe body permintaan.

Stream

Jika Anda perlu mengunggah file, Anda dapat melewati aliran file dengan mengonfigurasi parameter Stream.

        // Metode 1: Konfigurasikan string kueri.
        Dictionary<string, object> queries = new Dictionary<string, object>() { };
        queries["RegionId"] = "cn-hangzhou";
        AlibabaCloud.OpenApiClient.Models.OpenApiRequest request =
            new AlibabaCloud.OpenApiClient.Models.OpenApiRequest
            {
                Query = AlibabaCloud.OpenApiUtil.Client.Query(queries),
            };

//        // Metode 2: Konfigurasikan body dan atur reqBodyType ke json.
//        Dictionary<string, object> body = new Dictionary<string, object>()
//        {
//            { "param1", "value1" },
//            { "param2", "value2" },
//        };
//        AlibabaCloud.OpenApiClient.Models.OpenApiRequest request =
//            new AlibabaCloud.OpenApiClient.Models.OpenApiRequest
//            {
//                Body = AlibabaCloud.OpenApiUtil.Client.Query(body),
//            };

//        // Metode 3: Konfigurasikan body dan atur reqBodyType ke formData.
//        Dictionary<string, object> formData = new Dictionary<string, object>()
//        {
//            { "param1", "value1" },
//            { "param2", "value2" },
//        };
//        AlibabaCloud.OpenApiClient.Models.OpenApiRequest request =
//            new AlibabaCloud.OpenApiClient.Models.OpenApiRequest { Body = formData };

//        // Metode 4: Konfigurasikan parameter Stream untuk melewati aliran file
//        AlibabaCloud.OpenApiClient.Models.OpenApiRequest request =
//            new AlibabaCloud.OpenApiClient.Models.OpenApiRequest
//            {
//                Stream = "<FILE_STREAM>",
//            };

Mulai permintaan

Gunakan AlibabaCloud.OpenApiClient.Client untuk memulai permintaan dengan memanggil metode CallApi. Selain itu, konfigurasikan parameter runtime, seperti timeout dan pengaturan proxy. Untuk informasi lebih lanjut, lihat Konfigurasi lanjutan.

AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
var response = client.CallApi(params_, request, runtime);
// Respons bertipe MAP, yang berisi body respons, header respons, dan kode status HTTP.
Console.WriteLine(response["statusCode"]);

Kode contoh

Contoh: Panggil operasi API bergaya RPC

Dalam contoh ini, operasi DescribeInstanceTypeFamilies dari Elastic Compute Service (ECS) dipanggil untuk menunjukkan cara melakukan pemanggilan generik dari suatu operasi.

namespace AlibabaCloud.SDK.Sample
{
    public class Sample 
    {

        public static AlibabaCloud.OpenApiClient.Client CreateClient()
        {
            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
            {
                // Diperlukan. Pastikan variabel lingkungan berikut diatur dalam lingkungan runtime kode: ALIBABA_CLOUD_ACCESS_KEY_ID. 
                AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                // Diperlukan. Pastikan variabel lingkungan berikut diatur dalam lingkungan runtime kode: ALIBABA_CLOUD_ACCESS_KEY_SECRET. 
                AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
            };
            config.Endpoint = "ecs-cn-hangzhou.aliyuncs.com";
            return new AlibabaCloud.OpenApiClient.Client(config);
        }

        public static AlibabaCloud.OpenApiClient.Models.Params CreateApiInfo()
        {
            AlibabaCloud.OpenApiClient.Models.Params params_ = new AlibabaCloud.OpenApiClient.Models.Params
            {
                // Nama operasi API.
                Action = "DescribeInstanceTypeFamilies",
                // Nomor versi operasi API.
                Version = "2014-05-26",
                // Protokol operasi API.
                Protocol = "HTTPS",
                // Metode HTTP operasi API.
                Method = "POST",
                AuthType = "AK",
                Style = "RPC",
                // Jalur operasi API.
                Pathname = "/",
                // Format body permintaan.
                ReqBodyType = "json",
                // Format body respons.
                BodyType = "json",
            };
            return params_;
        }

        public static void Main(string[] args)
        {
            AlibabaCloud.OpenApiClient.Client client = CreateClient();
            AlibabaCloud.OpenApiClient.Models.Params params_ = CreateApiInfo();
            // parameter kueri
            Dictionary<string, object> queries = new Dictionary<string, object>(){};
            queries["RegionId"] = "cn-hangzhou";
            // opsi runtime
            AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
            AlibabaCloud.OpenApiClient.Models.OpenApiRequest request = new AlibabaCloud.OpenApiClient.Models.OpenApiRequest
            {
                Query = AlibabaCloud.OpenApiUtil.Client.Query(queries),
            };
            // Jika Anda menyalin dan menjalankan kode contoh, tulis kode Anda untuk menampilkan respons dari operasi.
            // Respons bertipe MAP, yang berisi body respons, header respons, dan kode status HTTP. 
            var response = client.CallApi(params_, request, runtime);
            Console.WriteLine(response["statusCode"]);
        }
    }
}

Contoh: Panggil operasi API bergaya RESTful (ROA)

Dalam contoh ini, operasi DescribeClustersV1 dari Container Service for Kubernetes (ACK) dipanggil untuk menunjukkan cara melakukan pemanggilan generik dari suatu operasi.

namespace AlibabaCloud.SDK.Sample
{
    public class Sample 
    {

        public static AlibabaCloud.OpenApiClient.Client CreateClient()
        {
            AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
            {
                // Diperlukan. Pastikan variabel lingkungan berikut diatur dalam lingkungan runtime kode: ALIBABA_CLOUD_ACCESS_KEY_ID. 
                AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
                // Diperlukan. Pastikan variabel lingkungan berikut diatur dalam lingkungan runtime kode: ALIBABA_CLOUD_ACCESS_KEY_SECRET. 
                AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
            };
            config.Endpoint = "cs.cn-hangzhou.aliyuncs.com";
            return new AlibabaCloud.OpenApiClient.Client(config);
        }

        public static AlibabaCloud.OpenApiClient.Models.Params CreateApiInfo()
        {
            AlibabaCloud.OpenApiClient.Models.Params params_ = new AlibabaCloud.OpenApiClient.Models.Params
            {
                // Nama operasi API.
                Action = "DescribeClustersV1",
                // Nomor versi operasi API.
                Version = "2015-12-15",
                // Protokol operasi API.
                Protocol = "HTTPS",
                // Metode HTTP operasi API.
                Method = "GET",
                AuthType = "AK",
                Style = "ROA",
                // Jalur operasi API.
                Pathname = "/api/v1/clusters",
                // Format body permintaan.
                ReqBodyType = "json",
                // Format body respons.
                BodyType = "json",
            };
            return params_;
        }

        public static void Main(string[] args)
        {
            AlibabaCloud.OpenApiClient.Client client = CreateClient();
            AlibabaCloud.OpenApiClient.Models.Params params_ = CreateApiInfo();
            // opsi runtime
            AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
            AlibabaCloud.OpenApiClient.Models.OpenApiRequest request = new AlibabaCloud.OpenApiClient.Models.OpenApiRequest();
            // Tulis kode Anda untuk menampilkan respons dari operasi jika diperlukan.
            // Respons bertipe MAP, yang berisi body respons, header respons, dan kode status HTTP. 
            var response = client.CallApi(params_, request, runtime);
            Console.WriteLine(response["statusCode"]);
        }
    }
}