Expand description
文章 API 模块
这个模块提供了与文章相关的 API 操作,包括发布、更新、查询、点赞、感谢、收藏、关注、打赏、获取在线人数和 WebSocket 监听等功能。
主要结构体是 Article,用于管理文章相关的 HTTP 请求和 WebSocket 连接。
事件通过 ArticleListener 回调处理,支持实时消息监听。
§主要组件
Article- 文章客户端结构体,负责所有文章相关的 API 调用和 WebSocket 连接。ArticleMessageHandler- 文章消息处理器,实现MessageHandlertrait,处理 WebSocket 消息并异步调用回调。ArticleListener- 文章监听器类型别名,定义异步监听器函数的签名,用于处理接收到的消息,支持多线程共享。
§方法列表
Article::new- 创建新的文章客户端实例。Article::post_article- 发布新文章。Article::update_article- 更新现有文章。Article::list- 查询文章列表(支持类型、标签、分页)。Article::list_by_user- 查询指定用户的文章列表。Article::detail- 获取文章详情(包括评论分页)。Article::vote- 点赞或点踩文章。Article::thank- 感谢文章。Article::follow- 收藏或取消收藏文章。Article::watch- 关注或取消关注文章。Article::reward- 打赏文章。Article::heat- 获取文章在线人数。Article::add_listener- 添加文章 WebSocket 监听器。
§示例
use fishpi_sdk::api::article::{Article, ArticleListener};
use fishpi_sdk::model::article::{ArticlePost, ArticleType};
use serde_json::Value;
use std::sync::Arc;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let article = Article::new("your_api_key".to_string());
let data = ArticlePost {
title: "Test Title".to_string(),
content: "Test Content".to_string(),
tags: "test".to_string(),
commentable: true,
notifyFollowers: false,
type_: ArticleType::Normal,
showInList: 1,
rewardContent: None,
rewardPoint: None,
anonymous: None,
offerPoint: None,
};
let article_id = article.post_article(&data).await?;
let detail = article.detail(&article_id, 1).await?;
println!("Article title: {}", detail.title);
let callback: ArticleListener = Arc::new(|msg: Value| {
Box::pin(async move {
println!("Received message: {:?}", msg);
})
});
let _ws_client = article
.add_listener(&article_id, ArticleType::Normal, Arc::clone(&callback))
.await?;
Ok(())
}Structs§
- Article
- Article
Message Handler - 文章消息处理器
Type Aliases§
- Article
Listener - 文章监听器类型