Crate dnspod_lib
source ·Expand description
DNSPod
该库使用 腾讯云 DNSPod API 3.0 版本, 不兼容旧版 API
如果你在找 dnspod 的命令行工具, 请到 dnspod-cli
Examples
extern crate anyhow;
extern crate reqwest;
extern crate dnspod_lib;
use anyhow::Result;
use dnspod_lib::prelude::*;
fn main() -> Result<()> {
let res = execute(
DescribeDomainList {
Type: DomainType::ALL,
Offset: 0,
Limit: 0,
GroupId: 0,
Keyword: None,
}
.into()
)?;
println!("res: {:#?}", res);
let res = execute(
DescribeRecordList {
Domain: "youran.de".into(),
Subdomain: None,
Keyword: None,
}
.into(),
)?;
println!("res: {:#?}", res);
Ok(())
}
fn execute(request: Action) -> 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)
}Run
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/56191 参数类型 https://cloud.tencent.com/document/api/1427/78480
- 签名方法 v3 https://cloud.tencent.com/document/api/1427/56189