#cloudflare #api #record #dns-records #zone #delete #migamake

migamake-api-cloudflare

用于处理Cloudflare API的库

2个不稳定版本

0.2.0 2020年12月29日
0.1.0 2020年12月23日

#38 in #zone

Apache-2.0 OR MIT

23KB
494

Migamake Cloudflare API

此crate是对Cloudflare API的包装。它包括对3个端点的支持-

  • 列出区域
  • 创建DNS记录
  • 删除DNS记录

此crate使用API令牌进行身份验证。您可以在cloudflare仪表板上创建具有适当权限的令牌。您可以在API令牌中了解更多信息。从本文档中 -

API令牌为使用Cloudflare API提供了一种新的身份验证方式。它们允许对资源进行范围和权限访问,并使用符合RFC的Authorization Bearer Token Header。

安装

将此库添加到现有项目 -

cargo add migamake-api-cloudflare

构建

克隆仓库并构建项目 -

cargo build

文档

要本地查看文档,请运行 -

cargo doc --no-deps --open

运行测试

要运行单元测试 -

cargo test --lib

要运行所有测试,包括集成测试 -(需要环境变量CLOUDFLARE_API_KEY、CLOUDFLARE_DOMAIN和CLOUDFLARE_ZONE)

cargo test

用法

此示例演示了库的使用方法。示例创建了一个TXT记录。

[dependencies]
migamake-api-cloudflare = { version = "0.1"}

use migamake_api_cloudflare::{Cloudflare, dns};

fn main() {
    let domain = "example.com".into();
    let zoneid = "some id";

    // initializes the object using an environment variable CLOUDFLARE_API_KEY
    // or the api key could be passed to the default method
    // let cloudflare = Cloudflare::default(Some("api-key").into());
    let cloudflare = Cloudflare::default(None);

    let mut txt_dns_record = dns::TXTRecord::new();
    txt_dns_record.name = domain;
    txt_dns_record.content = "create a txt record".into();

    let response = cloudflare.create_dns_record(txt_dns_record, &zoneid);

    let res = response.unwrap();
    if res.success {
        println!("{}", "Record created");
    }
    else{
        println!("{:?}", res.errors);
    }

}

依赖项

~5–7.5MB
~158K SLoC