5 个版本

0.1.4 2023年10月29日
0.1.3 2023年10月29日
0.1.2 2023年10月25日
0.1.1 2023年10月24日
0.1.0 2023年10月23日

#1969开发工具

MIT 许可证

26KB
661

upcloud


lib.rs:

Upcloud API 的客户端库,该API的文档位于 https://www.upcloud.com/,并在 https://developers.upcloud.com/ 上记录。

示例阻塞

需要启用 "blocking" 功能。

upcloud_rs = { version = "*", features = ["blocking"] }
use upcloud_rs::{UpcloudApi, UpcloudError};

fn main() -> Result<(), UpcloudError> {
    let api = UpcloudApi::new("username", "password");
    
    let account = api.get_account_info()?;
    println!("ACCOUNT: {:?}", account);
    
    let account_list = api.get_account_list()?;
    println!("ACCOUNT LIST: {:?}", account_list);
    
    let prices = api.get_prices()?;
    println!("PRICES: {:#?}", prices);
    
    let zones = api.get_zones()?;
    println!("ZONES: {:#?}", zones);
    Ok(())
}

示例异步

upcloud_rs = { version = "*" }
use upcloud_rs::{UpcloudApi, UpcloudError};

#[async_std::main]
async fn main() -> Result<(), UpcloudError> {
    let api = UpcloudApi::new("username", "password");
    let account = api.get_account_info_async().await?;
    println!("ACCOUNT: {:?}", account);
    
    let account_list = api.get_account_list_async().await?;
    println!("ACCOUNT LIST: {:?}", account_list);
    
    let prices = api.get_prices_async().await?;
    println!("PRICES: {:#?}", prices);
    Ok(())
}

特性

  • "default" - 使用 nativetls
  • "default-rustls" - 使用 rusttls
  • "blocking" - 启用阻塞API
  • "rustls" - 为 reqwest 启用 rustls
  • "nativetls" - 添加对 nativetls 的支持 DEFAULT
  • "gzip" - 在 reqwest 中启用 gzip
  • "brotli" - 在 reqwest 中启用 brotli
  • "deflate" - 在 reqwest 中启用 deflate

依赖

~4–17MB
~271K SLoC