SDK de Rust
A crate serpcheap é o cliente oficial de Rust — TLS via rustls (sem OpenSSL do sistema), um cliente
blocking síncrono por padrão.
Instalação
Seção intitulada “Instalação”cargo add serpcheapInício rápido
Seção intitulada “Início rápido”use serpcheap::{Client, SearchParams};
fn main() -> Result<(), serpcheap::Error> { let client = Client::builder("YOUR_API_KEY").build()?; let resp = client.search(&SearchParams::new("best running shoes").gl("us"))?;
println!("query: {}", resp.search); for r in &resp.organic { println!("{}. {} — {}", r.position, r.title, r.link); } if let Some(stats) = &resp.stats { println!("balance: {} (cost {})", stats.balance, stats.cost); } Ok(())}Parâmetros & configuração
Seção intitulada “Parâmetros & configuração”let params = SearchParams::new("rust language") .gl("gb") // country (default "us") .hl("en") // UI language .tbs("qdr:d") // time filter .page(2); // 1-indexed
use std::time::Duration;use serpcheap::{Client, ClientOptions};
let client = Client::new("YOUR_API_KEY", ClientOptions { base_url: "https://api.serp.cheap".into(), timeout: Duration::from_secs(15), max_retries: 2,})?;Tratamento de erros
Seção intitulada “Tratamento de erros”use serpcheap::ErrorCode;
match client.search(&SearchParams::new("q")) { Ok(resp) => println!("{} results", resp.organic.len()), Err(err) => match err.code { ErrorCode::InsufficientCredits => eprintln!("top up"), ErrorCode::RateLimited => eprintln!("retry after {:?} ms", err.retry_after_ms), _ if err.is_retryable() => eprintln!("transient: {err}"), _ => eprintln!("error: {err}"), },}