4 个版本 (破坏性更新)
0.4.0 | 2024年7月20日 |
---|---|
0.3.0 | 2023年12月31日 |
0.2.0 | 2023年9月18日 |
0.1.0 | 2023年8月27日 |
#212 in 异步
每月329次下载
84KB
1K SLoC
Unkey for Rust
Unkey API的异步Rust SDK。
所有您所爱的API密钥管理功能,现在具有更多类型安全性!
MSRV
此项目支持的最小Rust版本是 1.63.0
。
文档
完整文档可在 https://docs.rs/unkey 找到。
设置
使用 cargo
cargo add unkey
手动
将以下内容添加到您的 Cargo.toml
依赖项数组中
unkey = "0.4" # I won't forget to update this™
示例
验证密钥
use unkey::models::VerifyKeyRequest;
use unkey::Client;
async fn verify_key() {
let c = Client::new("unkey_ABC");
let req = VerifyKeyRequest::new("test_DEF", "api_JJJ");
match c.verify_key(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
创建密钥
use unkey::models::CreateKeyRequest;
use unkey::Client;
async fn create_key() {
let c = Client::new("unkey_ABC");
let req = CreateKeyRequest::new("api_123")
.set_prefix("test")
.set_remaining(100)
.set_name("test_name")
.set_owner_id("jonxslays");
match c.create_key(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
更新密钥
use unkey::models::{Refill, RefillInterval, UpdateKeyRequest};
use unkey::Client;
async fn update_key() {
let c = Client::new("unkey_ABC");
let req = UpdateKeyRequest::new("key_XYZ")
.set_name(Some("new_name")) // Update the keys name
.set_ratelimit(None) // Remove any ratelimit on the key
.set_expires(None) // Remove any expiration date
.set_refill(Some(Refill::new(100, RefillInterval::Daily)));
match c.update_key(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
撤销密钥
use unkey::models::RevokeKeyRequest;
use unkey::Client;
async fn revoke_key() {
let c = Client::new("unkey_ABC");
let req = RevokeKeyRequest::new("key_XYZ");
match c.revoke_key(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
列出API密钥
use unkey::models::ListKeysRequest;
use unkey::Client;
async fn list_keys() {
let c = Client::new("unkey_ABC");
let req = ListKeysRequest::new("api_123");
match c.list_keys(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
获取API信息
use unkey::models::GetApiRequest;
use unkey::Client;
async fn get_api() {
let c = Client::new("unkey_ABC");
let req = GetApiRequest::new("api_123");
match c.get_api(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
获取密钥详情
use unkey::models::GetKeyRequest;
use unkey::Client;
async fn get_key() {
let c = Client::new("unkey_ABC");
let req = GetKeyRequest::new("key_123");
match c.get_key(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
更新剩余验证
use unkey::models::{UpdateOp, UpdateRemainingRequest};
use unkey::Client;
async fn update_remaining() {
let c = Client::new("unkey_ABC");
let req = UpdateRemainingRequest::new("key_123", Some(100), UpdateOp::Set);
match c.update_remaining(req).await {
Ok(res) => println!("{res:?}"),
Err(err) => eprintln!("{err:?}"),
}
}
贡献
Unkey for Rust 欢迎贡献!查看 贡献指南 以开始。
许可证
Unkey for Rust 根据 MIT 许可证 授权。
依赖项
~4–15MB
~226K SLoC