24个版本

0.7.0-rc.12024年6月2日
0.6.0 2023年12月15日
0.5.0 2023年4月3日
0.5.0-alpha.32023年2月20日
0.2.2 2021年6月22日

#892 in Web编程

Download history 12/week @ 2024-04-26 8/week @ 2024-05-03 16/week @ 2024-05-17 41/week @ 2024-05-24 216/week @ 2024-05-31 217/week @ 2024-06-07 161/week @ 2024-06-14 131/week @ 2024-06-21 100/week @ 2024-06-28 156/week @ 2024-07-05 95/week @ 2024-07-12 98/week @ 2024-07-19 126/week @ 2024-07-26 106/week @ 2024-08-02 74/week @ 2024-08-09

每月420次下载
用于 2 包

GPL-3.0-or-later

61KB
1K SLoC

mwapi

crates.io docs.rs docs (main) pipeline status coverage report

MediaWiki API客户端库。

mwapi 是 MediaWiki Action API 的低级库。如果您打算编辑页面或需要一个更高级的接口,建议使用建立在 mwbot 之上的库,它基于此包。

目标

  • 通用,适用于任何应用程序,无论是交互式使用还是编写机器人
  • 完全兼容并发用例
  • 将 MediaWiki 错误转换为 Rust 错误
  • 日志记录(使用 tracing 包)以查看错误
  • 遵循所有 最佳实践

快速入门

let client = mwapi::Client::builder("https://en.wikipedia.org/w/api.php")
    .set_user_agent("mwapi demo")
    // Provide credentials for login:
    // .set_botpassword("username", "password")
    .build().await?;
let resp = client.get_value(&[
    ("action", "query"),
    ("prop", "info"),
    ("titles", "Taylor Swift"),
]).await?;
let info = resp["query"]["pages"][0].clone();
assert_eq!(info["ns"].as_u64().unwrap(), 0);
assert_eq!(info["title"].as_str().unwrap(), "Taylor Swift");

功能

  • 身份验证,使用 OAuth2(推荐)或BotPasswords
  • 错误处理,将 MediaWiki 错误转换为 Rust 错误
  • CSRF token 处理,使用 post_with_token
  • 速率限制和并发控制
  • 文件上传(需要 upload 功能)

另请参阅

  • mwbot 提供与 MediaWiki 交互的高级接口
  • mwapi_responses 是一个宏,用于生成动态 API 查询的严格类型

贡献

mwapimwbot-rs 项目 的一部分。我们一直在寻找新的贡献者,如果您感兴趣,请 联系 我们!

许可证

此包在 GPL-3.0-or-later 许可下发布。有关详细信息,请参阅 COPYING

依赖项

~6–21MB
~269K SLoC