客户端

Dapr 客户端库使您能够从 Rust 应用程序与其他 Dapr 应用程序进行交互。

前提条件

引入客户端库

在您的 cargo.toml 文件中添加 Dapr

[dependencies]
# 其他依赖项
dapr = "0.13.0"

您可以引用 dapr::Client,或者将其完整路径绑定到一个新名称,如下所示:

use dapr::Client as DaprClient

实例化 Dapr 客户端

const addr: String = "https://127.0.0.1";
const port: String = "50001";

let mut client = dapr::Client::<dapr::client::TonicClient>::connect(addr,
    port).await?;

功能模块

Rust SDK 允许您与 Dapr 功能模块 进行交互。

服务调用

要在运行 Dapr sidecar 的另一个服务上调用特定方法,Dapr 客户端 Go SDK 提供了以下选项:

调用服务

let response = client
    .invoke_service("service-to-invoke", "method-to-invoke", Some(data))
    .await
    .unwrap();

有关服务调用的完整指南,请访问 如何:调用服务

状态管理

Dapr 客户端提供对状态管理方法的访问:save_stateget_statedelete_state,可以像这样使用:

let store_name = "store-name";
let state_key = "state-key";

let states = vec![(state_key, ("state-value").as_bytes().to_vec())];

// 使用键 "state-key" 和值 "state-value" 保存状态
client.save_state(store_name, states).await?;

// 获取键 "state-key" 的状态
let response = client.get_state(store_name, state_key, None).await.unwrap();

// 删除键 "state-key" 的状态
client.delete_state(store_name, state_key, None).await?;

注意: save_state 方法目前执行的是批量保存,但未来可能会进行重构

有关状态管理的完整指南,请访问 如何:保存和获取状态

发布消息

要将数据发布到主题上,Dapr Go 客户端提供了一种简单的方法:

let pubsub_name = "pubsub-name".to_string();
let pubsub_topic = "topic-name".to_string();
let pubsub_content_type = "text/plain".to_string();

let data = "content".to_string().into_bytes();
client
    .publish_event(pubsub_name, pubsub_topic, pubsub_content_type, data, None)
    .await?;

有关发布/订阅的完整指南,请访问 如何:发布和订阅

相关链接

Rust SDK 示例