typestar

Reutilizar un cliente en Rust

Un solo Client, configurado una vez: pool de conexiones, timeouts, encabezados por defecto.

use std::time::Duration;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = reqwest::Client::builder()
        .timeout(Duration::from_secs(10))
        .user_agent("typestar-cli/2.1")
        .build()?;

    for path in ["healthz", "api/paths?lang=rust"] {
        let url = format!("https://typestar.io/{path}");
        let status = client.get(&url).send().await?.status();
        println!("{status} {path}");
    }
    Ok(())
}

Cómo funciona

  1. Armar un cliente por petición tira el pool a la basura.
  2. timeout acota la petición completa.
  3. Los encabezados por defecto aplican a todo lo que el cliente envía.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
410
Tokens
124
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 68 segundos.

Escribe este fragmento

Paso 5 de 5 en Peticiones con reqwest; paso 11 de 12 en Herramientas CLI y clientes HTTP.

← Anterior Siguiente →