Expand description
网易云与 QQ 音乐的统一异步 API 封装库。
§Overview
本 crate 提供统一入口 MusicClient,并通过 typed builder 约束请求构建流程。
调用方可以在一致的 API
语义下完成搜索、详情、播放、发现、歌单和登录请求,而无需直接处理平台实现差异。
§Quick Start
let client = netease_qq_music_api::MusicClient::new();
let result = client.search().song().keyword("江南").limit(10).send().await?;
println!("songs: {}", result.songs.len());§Core Concepts
MusicClient- 全部请求的统一入口。- typed builders: 通过
Kind类型态限制“当前可调用步骤”。 Platform- 平台选择,默认值为Platform::Netease。LoginTokenRef- 平台登录 token 的统一借用包装,用于受保护接口。
§Terminology
- “请求构建器”:指
*Request<'a, K>链式类型。 - “类型态(Kind)”:指
*Kind标记类型,用于编译期约束调用顺序。 - “登录 token”:指平台登录凭证对象(如
models::NeteaseLoginToken、models::TencentLoginToken)。 - “token 所属平台”:指登录 token 对应的平台,必须与请求平台一致。
§Common Workflow
- 创建
MusicClient。 - 选择业务域(如
MusicClient::search、MusicClient::detail、MusicClient::playback)。 - 选择具体子能力并设置必填参数。
- 需要鉴权时调用对应请求构建器的登录注入方法并传入平台 token。
- 调用对应请求构建器的发送方法并
await结果。
§Errors and Limits
- 参数缺失会返回
MusicClientError的对应变体(如MusicClientError::MissingKeyword、MusicClientError::MissingId)。 - token 所属平台与请求平台不一致时返回
MusicClientError::AuthTokenPlatformMismatch。 - 网络与响应解析异常统一为
MusicClientError::NetworkError。 - 公开 API 通过
MusicClientResult返回失败信息,不以 panic 作为业务错误路径。
§See Also
Re-exports§
pub use client::MusicClient;pub use error::MusicClientError;pub use error::MusicClientResult;