10个版本
0.1.8 | 2021年5月4日 |
---|---|
0.1.7 | 2021年5月3日 |
0.1.6 | 2021年4月20日 |
0.1.3 | 2021年3月9日 |
0.1.0 | 2021年2月26日 |
#61 in #开发者
每月 24 次下载
37KB
505 行
cwmanage
cwmanage - Connectwise Manage API crate
这是我用来学习Rust crates和库工作原理的简单管理API "库"
lib.rs
:
用于处理Connectwise Manage API的crate
在Connectwise API https://developer.connectwise.com/Products/Manage 中,一些结果以单个 'object' 返回,大多数以列表返回。通常你会得到一个结果列表(甚至只有一个),所以你会使用 Client.get。在某些情况下(例如 /system/info),它不会返回列表,在这种情况下使用 Client.get_single。有关更多详细信息,请参阅API文档(上面)。
获取示例
具有默认api_uri、codebase和api版本的简单客户端
use cwmanage::Client;
use dotenv::dotenv;
dotenv().ok();
let company_id: String = dotenv::var("CWMANAGE_COMPANY_ID").unwrap();
let public_key: String = dotenv::var("CWMANAGE_PUBLIC_KEY").unwrap();
let private_key: String = dotenv::var("CWMANAGE_PRIVATE_KEY").unwrap();
let client_id: String = dotenv::var("CWMANAGE_CLIENT_ID").unwrap();
let client = Client::new(company_id, public_key, private_key, client_id).build();
let query = [("", "")];
let result = client.get_single("/system/info", &query).unwrap();
覆盖api_version
use cwmanage::Client;
use dotenv::dotenv;
dotenv().ok();
let company_id: String = dotenv::var("CWMANAGE_COMPANY_ID").unwrap();
let public_key: String = dotenv::var("CWMANAGE_PUBLIC_KEY").unwrap();
let private_key: String = dotenv::var("CWMANAGE_PRIVATE_KEY").unwrap();
let client_id: String = dotenv::var("CWMANAGE_CLIENT_ID").unwrap();
let client = Client::new(company_id, public_key, private_key, client_id).build();
let query = [("", "")];
let result = client.get_single("/system/info", &query).unwrap();
获取具有多个结果的端点
use cwmanage::Client;
use dotenv::dotenv;
dotenv().ok();
let company_id: String = dotenv::var("CWMANAGE_COMPANY_ID").unwrap();
let public_key: String = dotenv::var("CWMANAGE_PUBLIC_KEY").unwrap();
let private_key: String = dotenv::var("CWMANAGE_PRIVATE_KEY").unwrap();
let client_id: String = dotenv::var("CWMANAGE_CLIENT_ID").unwrap();
let client = Client::new(company_id, public_key, private_key, client_id).build();
let query = [("fields", "id,identifier")];
let result = client.get("/system/members", &query);
POST示例
use cwmanage::Client;
use serde_json::json;
use dotenv::dotenv;
dotenv().ok();
let company_id: String = dotenv::var("CWMANAGE_COMPANY_ID").unwrap();
let public_key: String = dotenv::var("CWMANAGE_PUBLIC_KEY").unwrap();
let private_key: String = dotenv::var("CWMANAGE_PRIVATE_KEY").unwrap();
let client_id: String = dotenv::var("CWMANAGE_CLIENT_ID").unwrap();
let client = Client::new(company_id, public_key, private_key, client_id).build();
let body = json!({"foo": "bar"}).to_string();
let result = client.post("/system/members", body);
PATCH示例
use cwmanage::{Client, PatchOp};
use serde_json::json;
use dotenv::dotenv;
dotenv().ok();
let company_id: String = dotenv::var("CWMANAGE_COMPANY_ID").unwrap();
let public_key: String = dotenv::var("CWMANAGE_PUBLIC_KEY").unwrap();
let private_key: String = dotenv::var("CWMANAGE_PRIVATE_KEY").unwrap();
let client_id: String = dotenv::var("CWMANAGE_CLIENT_ID").unwrap();
let client = Client::new(company_id, public_key, private_key, client_id).build();
let op = PatchOp::Replace;
let path = "name";
let value = json!("test_basic_patch_replace");
let result = client.patch("/sales/activities/100", op, path, value);
查询示例
有关更多详细信息,请参阅connectwise API
- 无查询 -
[("", "")]
- 只获取id字段
[("fields", "id")]
- 也应用一些条件
[("fields", "id"), ("conditions", "name LIKE '%foo%'")]
依赖项
~5–20MB
~272K SLoC