Crate dnspod_lib

source ·
Expand description

DNSPod

DNSPod 简介

Examples

extern crate anyhow;
extern crate reqwest;
extern crate dnspod_lib;

use anyhow::Result;
use dnspod_lib::prelude::*;

fn execute(request: impl ExtractHeaders) -> Result<Response> {
    let client = reqwest::blocking::Client::new();

    let secret_id = std::env::var("DNSPOD_SECRET_ID")?;
    let secret_key = std::env::var("DNSPOD_SECRET_KEY")?;

    let url = request.url();
    let body = request.body();
    let headers = request.headers(&secret_id, &secret_key);
    let headers = (&headers).try_into()?;

    let request = client
        .post(url)
        .headers(headers)
        .body(body)
        .build()?;

    let res: Response = client
        .execute(request)?
        .json()?;

    Ok(res)
}

fn main() -> Result<()> {
    let res = execute(DescribeDomainList::default())?;
    println!("res: {:#?}", res);

    let res = execute(DescribeRecordList::new("example.com", None, None))?;
    println!("res: {:#?}", res);

    Ok(())
}
 DNSPOD_SECRET_ID=your-secret-id DNSPOD_SECRET_KEY=your-secret-key cargo run

Modules

  • 参数类型 https://cloud.tencent.com/document/api/1427/78480
  • 错误码 https://cloud.tencent.com/document/api/1427/56192
  • https://cloud.tencent.com/document/api/1427/56188
  • https://cloud.tencent.com/document/api/1427/56194#.E8.AE.B0.E5.BD.95.E7.9B.B8.E5.85.B3.E6.8E.A5.E5.8F.A3
  • 返回结果 https://cloud.tencent.com/document/api/1427/56191 参数类型 https://cloud.tencent.com/document/api/1427/78480
  • 签名方法 v3 https://cloud.tencent.com/document/api/1427/56189

Traits