4 个版本 (破坏性更改)
| 0.4.0 | 2023 年 9 月 17 日 |
|---|---|
| 0.3.0 | 2023 年 9 月 1 日 |
| 0.2.0 | 2023 年 8 月 28 日 |
| 0.1.0 | 2023 年 8 月 27 日 |
| 0.0.1 |
|
#120 in WebSocket
63KB
1.5K SLoC
gotify-rs
Gotify 的惯用 Rust 客户端。
概述
默认情况下,此 crate 只暴露了 Client::health()、Client::version() 方法。所有其他端点的类别必须通过相应的功能标志启用。
可用的功能标志表
| 功能标志 | 启用的方法 | 注意 |
|---|---|---|
app |
客户端::create_message() |
|
manage-applications |
Client::get_applications()、Client::create_application()、Client::update_application()、Client::delete_application()、Client::delete_application_image() |
|
manage-clients |
Client::get_clients()、Client::create_client()、Client::update_client()、Client::delete_client() |
|
manage-messages |
Client::get_application_messages(),Client::delete_application_messages(),Client::get_messages(),Client::delete_messages(),Client::delete_message() |
不包含Client::create_message()和Client::stream_messages() |
管理插件 |
Client::get_plugins(),Client::get_plugin_config(),Client::update_plugin_config(),Client::disable_plugin(),Client::get_plugin_display(),Client::enable_plugin() |
|
管理用户 |
Client::get_current_user(),Client::update_current_user(),Client::get_users(),Client::get_user(),Client::update_user(),Client::delete_user() |
|
WebSocket |
客户端::stream_messages() |
启用额外的依赖(主要是tokio-tungstenite) |
大多数将数据发送到Gotify API的方法使用建造者模式,以实现更易读的API和更好地支持对Gotify API的未来添加。如果向端点添加了可选参数,则可以将其作为建造者方法添加,而不会造成太多破坏。所有建造者都实现了IntoFuture,因此这些方法也可以直接进行await,就像它们是常规异步方法一样。
示例
创建消息
let client: gotify::AppClient = gotify::Client::new(GOTIFY_URL, GOTIFY_APP_TOKEN)?;
client.create_message("Lorem ipsum dolor sit amet").with_title("Lorem Ipsum").await?;
监听新消息
use futures_util::StreamExt;
let client: gotify::ClientClient = gotify::Client::new(GOTIFY_URL, GOTIFY_CLIENT_TOKEN)?;
let mut messages = client.stream_messages().await?;
while let Some(result) = messages.next().await {
let message = result?;
println!("{message:#?}")
}
许可证
本项目受MIT许可证的许可。
有关更多信息,请参阅LICENSE。
依赖关系
~4–19MB
~256K SLoC