SDK Rust
Le crate serpcheap est le client Rust officiel — TLS rustls (pas d’OpenSSL système), un client
blocking synchrone par défaut.
Installation
Section intitulée « Installation »cargo add serpcheapDémarrage rapide
Section intitulée « Démarrage rapide »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(())}Paramètres & configuration
Section intitulée « Paramètres & configuration »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,})?;Gestion des erreurs
Section intitulée « Gestion des erreurs »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}"), },}