Skip to main content

Module article

Module article 

Source
Expand description

文章 API 模块

这个模块提供了与文章相关的 API 操作,包括发布、更新、查询、点赞、感谢、收藏、关注、打赏、获取在线人数和 WebSocket 监听等功能。 主要结构体是 Article,用于管理文章相关的 HTTP 请求和 WebSocket 连接。 事件通过 ArticleListener 回调处理,支持实时消息监听。

§主要组件

  • Article - 文章客户端结构体,负责所有文章相关的 API 调用和 WebSocket 连接。
  • ArticleMessageHandler - 文章消息处理器,实现 MessageHandler trait,处理 WebSocket 消息并异步调用回调。
  • ArticleListener - 文章监听器类型别名,定义异步监听器函数的签名,用于处理接收到的消息,支持多线程共享。

§方法列表

§示例

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
ArticleMessageHandler
文章消息处理器

Type Aliases§

ArticleListener
文章监听器类型