Expand description
§Helvetia Client
This library contains an HTTP client for the Helvetia API. It follows the v0 API spec.
§Example
There are three main operations that this client supports: create a secret, get its data/metadata, delete a secret. Here’s an example of all three:
use url;
use helvetia_client::{Data,Meta,HelvetiaClient};
let owner_token = "owner_token";
let meta_token = "meta_token";
let secret_name = "secret";
let data = "The cake is a lie";
let meta = "Aperture";
// Create a client.
let server_url = url::Url::parse("https://helvetia.example.com")?;
let client = HelvetiaClient::from_url(server_url)?;
// Create a secret.
let data_req = Data::new(owner_token, data);
let meta_req = Meta::new(meta_token, meta);
let res = client.create_secret(secret_name, data_req, Some(meta_req)).await?;
assert_eq!(res, ());
// Get the data of a secret.
let res = client.get_secret_data(secret_name, owner_token).await?;
assert_eq!(&res, data);
// Get the metadata of a secret.
let res = client.get_secret_meta(secret_name, meta_token).await?;
assert_eq!(&res, meta);
// Delete a secret.
let res = client.delete_secret(secret_name, owner_token).await?;
assert_eq!(res, ());
Structs§
- Data
- The required data for creating a Helvetia secret.
- Helvetia
Client - The HTTP client for the Helvetia API.
- Meta
- The optional metadata for a Helvetia secret.
Enums§
- Error
- Errors for every problem that the Helvetia client may encounter.
Type Aliases§
- Res
- Alias for a Helvetia client result.