106 个版本

0.19.6-beta12024 年 7 月 23 日
0.19.6-beta.62024 年 8 月 20 日
0.19.5 2024 年 6 月 19 日
0.19.3 2024 年 1 月 22 日
0.11.3-rc.52021 年 7 月 24 日

#631 in 网页编程

Download history 119/week @ 2024-04-29 155/week @ 2024-05-06 130/week @ 2024-05-13 295/week @ 2024-05-20 284/week @ 2024-05-27 875/week @ 2024-06-03 166/week @ 2024-06-10 405/week @ 2024-06-17 14/week @ 2024-06-24 11/week @ 2024-07-15 154/week @ 2024-07-22 53/week @ 2024-07-29 276/week @ 2024-08-05 103/week @ 2024-08-12

每月 589 次下载
用于 8 crate

AGPL-3.0

2MB
51K SLoC

SQL 27K SLoC // 0.0% comments Rust 25K SLoC // 0.0% comments

lemmy_api_common

此 crate 提供了构建 Lemmy 客户端所需的所有数据类型。您可以使用它们与您选择的 HTTP 客户端一起使用。

以下是一个使用 reqwest 的示例

    let params = GetPosts {
        community_name: Some("asklemmy".to_string()),
        ..Default::default()
    };
    let client = Client::new();
    let response = client
        .get("https://lemmy.ml/api/v3/post/list")
        .query(&params)
        .send()
        .await?;
    let json = response.json::<GetPostsResponse>().await.unwrap();
    print!("{:?}", &json);

如您所见,每个 API 端点都需要一个参数类型(GetPosts)、路径(/post/list)和响应类型(GetPostsResponse)。您可以从 此文件 中找到路径和处理方法。参数类型和响应类型在每个处理方法中定义。

有关 Lemmy API 客户端的真实示例,请查看 lemmyBB

Lemmy 还提供 WebSocket API。您可以在 此文件 中找到完整的 WebSocket 代码。

生成 TypeScript 绑定

可以通过运行 cargo test --features full 来生成 TypeScript 绑定(API 类型)。ts 文件将生成到 bindings 文件夹中。

此 crate 使用 ts_rsderive(TS)ts(export) 来为绑定生成属性类型。

依赖项

~12–53MB
~1M SLoC