16个版本

0.3.6 2020年8月19日
0.3.5 2020年8月18日
0.2.7 2020年8月6日
0.1.0 2020年8月3日

#101 in #asynchronous

45 每月下载量

MIT 许可证

415KB
1K SLoC

Crates.io Docs.rs MIT licensed

coder.rs

一个异步、纯Rust封装的Coder企业API。

这目前是实验性的。并非所有路由都已被实现,API预计将会变化。

安装

Coder.rs已在Rust 1.40+上进行了测试。

将其添加到你的Cargo.toml[dependencies]部分

coder = { version = "0.3", features = ["rustls"] }

用法

Coder提供了coder::Coder结构体来创建请求。

use std::env;
use std::error::Error;

use coder::{Coder, Executor};

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let url = env::var("MANAGER_URL")?;
    let api_key = env::var("API_KEY")?;
    let c = Coder::new(url, api_key)?;

    let res = c.users().me().execute().await?;
    dbg!(res);

    Ok(())
}

// [src/bin/main.rs:19] res = ApiResponse {
//     headers: Headers(
//         {
//             "server": "openresty/1.15.8.2",
//             "date": "Wed, 05 Aug 2020 05:05:11 GMT",
//             "content-type": "application/json",
//             "content-length": "653",
//             "vary": "Accept-Encoding",
//             "vary": "Origin",
//             "strict-transport-security": "max-age=15724800; includeSubDomains",
//             "coder-version": "1.9.0-rc1-220-gd2a04f83a",
//             "x-envoy-upstream-service-time": "20",
//         },
//     ),
//     status_code: 200,
//     response: Ok(
//         User {
//             id: "5e876cf4-10abe9b2e54eb609c5ec1870",
//             name: "Colin Adler",
//             username: "colin",
//             email: "[email protected]",
//             dotfiles_git_uri: "",
//             roles: [
//                 "site-manager",
//                 "site-auditor",
//             ],
//             avatar_hash: "28707dc83fdcba2cacaa3ad5e381b34b7cb37b74",
//             key_regenerated_at: 2020-04-03T17:05:56.964782Z,
//             created_at: 2020-04-03T17:05:56.964782Z,
//             updated_at: 2020-05-29T18:10:33.532351Z,
//         },
//     ),
// }

特性

  • rustls - 使用rustls纯Rust TLS实现。(默认)
  • rust-native-tls - 使用native-tls进行TLS,链接到操作系统默认值。

依赖

~10–23MB
~376K SLoC