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-alpha3 | 2015年6月8日 |
#4 in #do
340KB
2K SLoC
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 网站 找到完整的文档。
贡献
贡献总是受欢迎!根据您的兴趣或专长,您有多种方式可以提供帮助。从文档、代码清理、问题完成、新功能,甚至提交问题都是贡献,而且非常受欢迎!
注意:目前最好的帮助方式是简单地使用库并报告问题!
- Fork
doapi
- 克隆您的分叉(
git clone https://github.com/$YOUR_USERNAME/doapi-rs && cd doapi-rs
) - 创建新分支(
git checkout -b new-branch
) - 进行更改,并提交(
git commit -am "你的信息"
)
- 我使用一个 常规 变更日志格式,这样我就可以使用 clog 更新我的变更日志
- 使用以下格式格式化提交主题行:
TYPE(COMPONENT): MESSAGE
其中TYPE
是以下之一feat
- 新功能imp
- 现有功能的改进perf
- 性能改进docs
- 仅更改文档tests
- 仅更改测试框架或测试fix
- 错误修复refactor
- 代码功能不改变,但底层结构可能改变style
- 仅更改样式,不改变功能wip
- 进行中的提交(通常应使用git rebase
修改)chore
- 捕获所有或与构建系统等相关的事情
COMPONENT
是可选的,可能是一个单个文件、目录或逻辑组件。如果提交适用于全局,则可以省略
git rebase
到简洁的提交并删除--fixup
(git rebase -i HEAD~NUM
其中NUM
是回退的提交数)- 将您的更改推送到您的分叉(
git push origin $your-branch
) - 创建一个拉取请求!(您也可以首先创建拉取请求,当准备好时我们将合并。这是讨论提议更改的好方法。)
最近的重大变更
尽管我尽量将重大变更降至最低,但由于这是一个低于1.0的库,有时为了支持更好的功能或实现,仍然需要进行重大变更。有关详细信息,请参阅changelog.md。
无重大更新 :)
弃用功能
旧方法名将在一段时间内保留。
无重大更新 :)
依赖项
~11MB
~236K SLoC