Expand description
Library for interacting with an Avassa system.
§Avassa Client
The first interaction is to login into the system
#[tokio::main]
async fn main() -> Result<(), avassa_client::Error> {
use avassa_client::Client;
// API CA certificate loaded
let ca_cert = Vec::new();
// Use login using platform provided application token
let approle_id = "secret approle id";
let client = Client::builder()
.add_root_certificate(&ca_cert)?
.approle_login("https://api.customer.net",
&std::env::var("APPROLE_SECRET_ID").unwrap(),
Some(approle_id)).await?;
// Username and password authentication, good during the development phase
let client = Client::builder()
.add_root_certificate(&ca_cert)?
.login("https://1.2.3.4", "joe", "secret").await?;
Ok(())
}§Volga
§Create a Volga producer and consumer
#[tokio::main]
async fn main() -> Result<(), avassa_client::Error> {
use avassa_client::Client;
// API CA certificate loaded
let ca_cert = Vec::new();
// Use login using platform provided application token
let approle_id = "secret approle id";
let client = Client::builder()
.add_root_certificate(&ca_cert)?
.application_login("https://api.customer.net", Some(approle_id)).await?;
// Clone to move into async closure
let producer_client = client.clone();
tokio::spawn(async move {
let mut producer = producer_client.volga_open_producer(
"test-producer",
"my-topic",
avassa_client::volga::OnNoExists::Create(Default::default())
)
.await?;
producer.produce(&serde_json::json!({
"msg": "The Message",
})).await?;
Ok::<_, avassa_client::Error>(())
});
let mut consumer = client.volga_open_consumer(
"test-consumer",
"my-topic",
Default::default())
.await?;
let message = consumer.consume::<String>().await?;
assert_eq!(message.payload, "test message");
Ok(())
}Modules§
Structs§
- Client
- The
Clientis used for all interaction with Control Tower or Edge Enforcer instances. Use one of the login functions to create an instance. - Client
Builder - Builder for an Avassa
Client - REST
Error - Description of an error from the REST APIs
- REST
Error List - List of REST API error messages
Enums§
- Error
- Error returned by client functions
Type Aliases§
- Result
- Result type