Herramientas CLI y clientes HTTP
12 pasos en 4 series de Rust.
Rust produce herramientas de línea de comandos muy buenas, y por eso gente que no escribe software de sistemas termina aprendiéndolo de todos modos. Parseo de argumentos con clap, luego leer y escribir streams como se debe.
La última serie es reqwest para HTTP. Doce pasos, y el bis es una herramienta que plausiblemente podrías instalar y usar.
Argumentos
- Argumentos a la manera simpleAntes de cualquier crate: std::env te da los argumentos y el entorno.
- La API derive de clapUn struct con atributos se vuelve un parser, un texto de ayuda y una bandera de versión.
- Flags, conteos y listasValores opcionales, flags repetidos y argumentos que toman muchos valores.
- SubcomandosUn binario, varios verbos: un enum de subcomandos, cada uno con sus propios argumentos.
- Validar argumentosclap puede exigir rangos, enumeraciones y combinaciones requeridas antes de que main corra.
Entrada y salida
- Leer la entrada estándarUn filtro lee líneas de stdin, así que se compone con cualquier otra herramienta.
Peticiones con reqwest
- Un GET de HTTPEl cliente async de reqwest: envía la petición, espera el cuerpo.
- Respuestas JSON tipadasPide JSON y reqwest deserializa directo en tu tipo.
- Enviar un cuerpo con POSTUn POST con JSON, encabezados y un token bearer, armado sobre la petición.
- Códigos de estado y fallasUn 404 es una petición exitosa con un estado no exitoso — maneja ambos.
- Reutilizar un clienteUn solo Client, configurado una vez: pool de conexiones, timeouts, encabezados por defecto.
Bis
- fetch_tours.rsUn CLI real: clap parsea los flags, reqwest descarga, serde modela la respuesta.