Respuestas JSON tipadas en Rust
Pide JSON y reqwest deserializa directo en tu tipo.
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct Health {
status: String,
#[serde(default)]
version: String,
}
#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
let health: Health = reqwest::get("https://typestar.io/api/health")
.await?
.json()
.await?;
println!("{} {}", health.status, health.version);
Ok(())
}
Cómo funciona
json::<T>()necesita queTimplementeDeserialize.- La anotación de tipo es la que elige el modelo.
- Una forma que no calza aflora como error de reqwest.
Palabras clave y builtins usados aquí
OkResultStringasyncawaitfnletstructuse
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 340
- Tokens
- 87
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 47 segundos.
Paso 2 de 5 en Peticiones con reqwest; paso 8 de 12 en Herramientas CLI y clientes HTTP.