Expand description
§Digisac Rust SDK
Biblioteca para autenticar e consumir endpoints da API Digisac,
seguindo os mesmos padrões de arquitetura do crate paytour e
incorporando boas práticas de Rust (macros, traits, builders).
§Recursos
- Autenticação via token de acesso
- Gerenciamento de webhooks
- Envio de mensagens
- Cliente HTTP genérico com zero-cost abstractions
- CLI completo para todos os endpoints
- Servidor HTTP para integração com agentes
§Exemplo rápido
use digisac::{
client::{DigisacClient, DigisacApi, SendMessageRequest},
config::EnvManager,
};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let env = EnvManager::load()?;
let token = env.access_token.ok_or("Token não encontrado")?;
let client = DigisacClient::new(env.api_base_url, token);
let request = SendMessageRequest::builder()
.service_id("123".to_string())
.contact_id("456".to_string())
.text("Olá!".to_string())
.build();
let response = client.send_message(&request).await?;
println!("Mensagem enviada: {:?}", response);
Ok(())
}§⚠️ Segurança
- Nunca commite tokens em repositórios
- Use variáveis de ambiente ou arquivos
.env(não versionados) - Tokens são automaticamente omitidos de logs (
#[debug(skip)])
Re-exports§
pub use auth::TokenStorage;pub use client::DigisacApi;pub use client::DigisacClient;pub use client::Message;pub use client::MessageResponse;pub use client::SendMessageRequest;pub use client::Webhook;pub use client::WebhookCreateRequest;pub use client::WebhookListResponse;pub use client::WebhookUpdateRequest;pub use config::EnvManager;pub use error::DigisacError;pub use error::Result;