5个版本

使用旧Rust 2015

0.1.3 2016年5月18日
0.1.2 2016年1月22日
0.1.1 2015年9月2日
0.1.0 2015年7月4日
0.1.0-alpha32015年6月8日

#4 in #do

MIT 许可证

340KB
2K SLoC

doapi-rs

Travis GitHub license GitHub release Join the chat at https://gitter.im/kbknapp/doapi-rs

利用Rust中的数字海洋API v2的封装库

免责声明

此库处于alpha版本 - 它可能做任何事情,包括吃掉你的衣服。

示例

完整信息可以在doapi文档数字海洋v2 API文档中找到。

以下示例展示了如何对现有的droplet进行快照,这会返回一个Action

let auth_token = "INSERT AUTH TOKEN HERE";
let domgr = DoManager::with_auth(&auth_token);
let snapshot_name = "my new snapshot";
let droplet_id = "1234567";

print!("Sending request...");
match domgr.droplet(droplet_id)
           .snapshot(snapshot_name)
           .retrieve() {
    Ok(action) => {
        println!("Success!\n\t");
        println!("{}\n", action);
    }
    Err(e) => {
        println!("Failed\n\t.");
        println!("{}\n", e);
    }
}

此库可以一次发送请求并从数字海洋检索回对象(如上例所示),或者您可以使用此库构建请求并按需修改它。例如(仍然使用上面的例子),您可以在不发送的情况下查看发送到数字海洋的请求

domgr.droplet(droplet_id)
     .snapshot(snapshot_name)
     .to_string();

您还可以从数字海洋获取原始JSON

print!("Sending request...")
match domgr.droplet(droplet_id)
           .snapshot(snapshot_name)
           .retrieve_json() {
Ok(json) => {
    println!("Success!\n\t");
    println!("{}\n", json);
},
Err(e) => {
    pritnln!("Failed\n\t.")
    println!("{}\n", e);
}

您还可以获取原始的hyper请求和响应以供您操作。

用法

目前,doapi需要一个nightly Rust编译器。

doapi添加到您的Cargo.toml文件中,以便从crates.io使用

[dependencies]
doapi = "*"

或者跟踪github上的master分支的最新版本

[dependencies.doapi]
git = "https://github.com/kbknapp/doapi-rs.git"

extern crate doapi;添加到您的crate根目录。

数字海洋个人认证令牌

为了使用数字海洋v2 API,您必须生成一个个人认证令牌。然后可以将此令牌传递给DoManager以构建请求并检索结果。

个人认证令牌可以是读/写,或只读/只写。为了处理具有破坏性的API调用(如各种.delete().create().update()等),您必须有一个具有写权限的令牌。

要生成新的个人认证令牌,请参阅以下 DigitalOcean 详细信息

更多信息

您可以在该项目的 github-pages 网站 找到完整的文档。

贡献

贡献总是受欢迎!根据您的兴趣或专长,您有多种方式可以提供帮助。从文档、代码清理、问题完成、新功能,甚至提交问题都是贡献,而且非常受欢迎!

注意:目前最好的帮助方式是简单地使用库并报告问题!

  1. Fork doapi
  2. 克隆您的分叉(git clone https://github.com/$YOUR_USERNAME/doapi-rs && cd doapi-rs
  3. 创建新分支(git checkout -b new-branch
  4. 进行更改,并提交(git commit -am "你的信息"
  • 我使用一个 常规 变更日志格式,这样我就可以使用 clog 更新我的变更日志
  • 使用以下格式格式化提交主题行: TYPE(COMPONENT): MESSAGE 其中 TYPE 是以下之一
    • feat - 新功能
    • imp - 现有功能的改进
    • perf - 性能改进
    • docs - 仅更改文档
    • tests - 仅更改测试框架或测试
    • fix - 错误修复
    • refactor - 代码功能不改变,但底层结构可能改变
    • style - 仅更改样式,不改变功能
    • wip - 进行中的提交(通常应使用 git rebase 修改)
    • chore - 捕获所有或与构建系统等相关的事情
  • COMPONENT 是可选的,可能是一个单个文件、目录或逻辑组件。如果提交适用于全局,则可以省略
  1. git rebase 到简洁的提交并删除 --fixupgit rebase -i HEAD~NUM 其中 NUM 是回退的提交数)
  2. 将您的更改推送到您的分叉(git push origin $your-branch
  3. 创建一个拉取请求!(您也可以首先创建拉取请求,当准备好时我们将合并。这是讨论提议更改的好方法。)

最近的重大变更

尽管我尽量将重大变更降至最低,但由于这是一个低于1.0的库,有时为了支持更好的功能或实现,仍然需要进行重大变更。有关详细信息,请参阅changelog.md。

无重大更新 :)

弃用功能

旧方法名将在一段时间内保留。

无重大更新 :)

依赖项

~11MB
~236K SLoC