az-aio-client
自动收集自
crates/api/az-aio-client/README.md。
AIO Desktop 后端 HTTP 客户端,提供对 Shell 组件注册表和桌面状态 API 的同步调用封装。
功能
- 类型安全的 AIO Desktop REST API 客户端,基于
reqwest::blocking - 可选的桌面会话令牌认证(
x-aio-desktop-tokenheader) - 完整的 Shell 组件管理接口:列表、获取、插入/更新(upsert)、局部修补(patch)、移除、配置保存、构建
- 桌面后端状态查询(
/api/desktop/status) - 统一的
AioClientError错误类型,区分传输层错误与 HTTP 状态错误
安装
在 Cargo.toml 中添加:
[dependencies]
az-aio-client = { path = "../az-aio-client" } # workspace 内部引用
# 或发布后:
# az-aio-client = "0.1" # crates.io 引用
用法
use az_aio_client::AioClient;
// 创建客户端(无需认证令牌)
let client = AioClient::new("http://localhost:9120");
// 或携带桌面会话令牌
let client = AioClient::with_desktop_token(
"http://localhost:9120",
"your-desktop-session-token",
);
// 查询桌面后端状态
let status = client.desktop_status()?;
println!("Desktop OK: {}", status.ok);
// 列出所有 Shell 组件
let registry = client.list_shell_components()?;
println!("共 {} 个组件", registry.components.len());
// 获取单个组件
if let Some(component) = client.get_shell_component("my-alias")? {
println!("组件预览: {}", component.preview);
}
依赖的 crates
az-config-center-contract— Shell 组件的共享数据类型reqwest— HTTP 客户端(阻塞模式)serde/serde_json— JSON 序列化与反序列化thiserror— 错误类型派生urlencoding— URL 路径编码(组件名称可能含特殊字符)