Skip to main content

Crate apibrasil

Crate apibrasil 

Source
Expand description

SDK oficial Rust da plataforma APIBrasil — WhatsApp, SMS, consultas de CPF/CNPJ, veículos, CEP, correios, pagamentos PIX/boleto e muito mais.

use apibrasil::{ApiBrasil, Config};
use serde_json::json;

#[tokio::main]
async fn main() -> apibrasil::Result<()> {
    let api = ApiBrasil::new(
        Config::new()
            .bearer_token("SEU_BEARER_TOKEN") // JWT do login
            .device_token("SEU_DEVICE_TOKEN"), // device dos serviços device-based
    );

    // WhatsApp
    api.whatsapp()
        .send_text(json!({ "number": "5511999999999", "text": "Olá! 👋" }))
        .await?;

    // Consulta CNPJ (por créditos)
    let empresa = api.consulta().cnpj(json!({ "cnpj": "00000000000000" })).await?;
    println!("{:?}", empresa.data());

    Ok(())
}

Credenciais não informadas são lidas das variáveis de ambiente APIBRASIL_BEARER_TOKEN, APIBRASIL_DEVICE_TOKEN, APIBRASIL_SECRET_KEY e APIBRASIL_BASE_URL — basta ApiBrasil::from_env.

§Como a plataforma funciona

FamíliaAutenticaçãoExemplos
Device-basedAuthorization: Bearer + header DeviceTokenWhatsApp, SMS, veículos, CEP, correios, DDD, feriados, tradução, clima, OCR
Por créditosapenas Authorization: Bearer (debita saldo)consulta: CPF, CNPJ, veículos, Serasa, CNH, telefone

§Features

  • rustls-tls (padrão) — TLS via rustls, sem depender de OpenSSL.
  • native-tls — TLS pela biblioteca do sistema.
  • blocking — cliente síncrono em blocking, sobre um runtime Tokio próprio.

Re-exports§

pub use self::core::Config;
pub use self::core::Consulta;
pub use self::core::CreditResponse;
pub use self::core::DeviceResponse;
pub use self::core::Error;
pub use self::core::ErrorKind;
pub use self::core::FnHooks;
pub use self::core::Hooks;
pub use self::core::HttpClient;
pub use self::core::IntoBody;
pub use self::core::Json;
pub use self::core::Method;
pub use self::core::RequestHookInfo;
pub use self::core::RequestOptions;
pub use self::core::ReqwestTransport;
pub use self::core::ResponseData;
pub use self::core::ResponseHookInfo;
pub use self::core::ResponseType;
pub use self::core::Result;
pub use self::core::RetryConfig;
pub use self::core::RetryHookInfo;
pub use self::core::Transport;
pub use self::core::TransportRequest;
pub use self::core::TransportResponse;
pub use self::core::DEFAULT_BASE_URL;
pub use self::core::DEFAULT_TIMEOUT;
pub use self::core::USER_AGENT;
pub use self::services::data::BulkService;
pub use self::services::data::CepService;
pub use self::services::data::ChipVirtualService;
pub use self::services::data::ConsultaService;
pub use self::services::data::CorreiosService;
pub use self::services::data::DadosService;
pub use self::services::data::DatabaseIpService;
pub use self::services::data::DddService;
pub use self::services::data::FipeService;
pub use self::services::data::GeolocationService;
pub use self::services::data::GeomatrixService;
pub use self::services::data::HolidaysService;
pub use self::services::data::LoteriasService;
pub use self::services::data::RecognizeService;
pub use self::services::data::TranslateService;
pub use self::services::data::UraService;
pub use self::services::data::VehiclesService;
pub use self::services::data::WeatherService;
pub use self::services::messaging::EvolutionService;
pub use self::services::messaging::SmsService;
pub use self::services::messaging::WhatsAppService;
pub use self::services::messaging::WhatsMeowService;
pub use self::services::platform::extract_token;
pub use self::services::platform::requires_2fa;
pub use self::services::platform::AccountService;
pub use self::services::platform::AuthService;
pub use self::services::platform::BearerRateLimitService;
pub use self::services::platform::CatalogService;
pub use self::services::platform::DevicesService;
pub use self::services::platform::IpWhitelistService;
pub use self::services::platform::PaymentsService;
pub use self::services::platform::ReportsService;
pub use self::services::BaseService;
pub use self::services::CreditService;
pub use self::services::DeviceProxyService;

Modules§

blockingblocking
Cliente síncrono da plataforma (feature = "blocking").
core
Infraestrutura da SDK: cliente HTTP, transporte plugável, política de retry, hooks de observabilidade, hierarquia de erros e os tipos compartilhados por todos os serviços.
generated
Catálogo de endpoints conhecidos da plataforma APIBrasil.
legacy
Interface legada da SDK, mantida por compatibilidade com o formato de chamada usado pelas primeiras SDKs da plataforma (credentials/body/action em uma string JSON).
services
Bases compartilhadas pelos serviços da SDK: BaseService (atalhos HTTP), DeviceProxyService (rotas device-based) e CreditService (consultas por crédito).

Structs§

ApiBrasil
Cliente da plataforma APIBrasil.

Functions§

login
Autentica por email/senha e devolve um cliente já autenticado, junto da sessão retornada pela plataforma.

Type Aliases§

Client
Alias de ApiBrasil, para leitura equivalente às demais SDKs da plataforma.