Expand description
§pickcat-api-collection
Pickcat 社区 API(https://cdsq.dao3.fun/api/v1)的异步 Rust 客户端,基于
reqwest。接口文档见 https://pickcat-docs.xiaole6324.fun。
所有能力都挂在 PickcatAccound 上,按章节拆成 trait:
| 模块 | trait | 内容 |
|---|---|---|
auth | auth::UserBehavior | 会话、注册、邮箱验证、入站考试 |
user | user::UserProfileBehavior | 用户资料、邮箱、关注/粉丝、主题/回帖、徽章、等级、配额等 |
topic | topic::TopicBehavior | 主题列表/推荐/详情、楼层、发布、投稿审核 |
tag | tag::TagBehavior | 分区标签、侧边子标签 |
notification | notification::NotificationBehavior | 通知未读汇总 |
reading_session | reading_session::ReadingSessionBehavior | 阅读埋点上报 |
media | media::MediaBehavior | 文件上传/读取、头像、表情 |
§快速开始
use pickcat_api_collection::auth::UserBehavior;
use pickcat_api_collection::PickcatAccound;
#[tokio::main]
async fn main() -> Result<(), pickcat_api_collection::Error> {
// 登录;后续请求自动携带会话 Cookie
let account = PickcatAccound::new("you@example.com", "password").await?;
let session = account.get_current_user_session().await?;
println!(
"{} Lv.{}",
session.user.username, session.user.level.current
);
Ok(())
}§鉴权
Pickcat 使用 Session(Cookie)而不是 JWT:登录成功后凭据由内部带 cookie
store 的 reqwest::Client 保存,调用方无需手动传 token。
§错误
所有方法返回 Result,错误类型为 Error(请求失败 Error::Reqwest
或响应反序列化失败 Error::Serde)。
§写接口
POST /posts、POST /files 等写接口需要 Idempotency-Key
请求头,可用 topic::generate_idempotency_key 生成。
Modules§
- auth
- 鉴权与入站考试:会话、注册、邮箱验证、考试流程。
- dto
- 按 API 章节拆分的请求/响应 DTO。
- media
- 媒体资源章节:文件上传/读取、头像、表情。
- notification
- 通知章节(文档目前只记录了未读汇总接口)。
- reading_
session - 阅读会话章节:阅读埋点上报。
- tag
- 分区标签章节。
- topic
- 主题与内容章节:主题列表/推荐/详情、楼层、发布主题/回帖、投稿审核。
- user
- 用户章节:资料、邮箱、关注/粉丝、主题/回帖、徽章、动态、等级、配额等。
Structs§
- Pickcat
Accound - 已登录的 Pickcat 账号,是访问所有接口的入口。
Enums§
- Error
- 调用 API 时可能出现的错误。