Creare una web api in Rust con Salvo

Mattepuffo's logo
Creare una web api in Rust con Salvo

Creare una web api in Rust con Salvo

Salvo è uno dei vari web framework per Rust.

In questo articolo vediamo un esempio introduttivo.

Prima di tutto aggiungiamo queste dipendenze dal cargo.toml e compiliamo:

[dependencies]
salvo = "0.68.4"
tokio = { version = "1", features = ["macros"] }
tracing = "0.1"
tracing-subscriber = "0.3"
serde = "1.0.97"

Qui sotto un esempio di codice in cui abbiamo una rotta principale che ci risponde in plain text; poi ne abbiamo aggiunta una con un path (così da fare eventuali raggruppamenti) che ci risponde con un JSON:

use salvo::prelude::*;
use serde::Serialize;

#[derive(Serialize, Debug)]
struct Utente {
    name: String,
}

#[handler]
async fn hello() -> &'static str {
    "Hello World"
}

#[handler]
async fn lista_utenti(res: &mut Response) {
    let utenti = vec![
        Utente {
            name: "Matteo".to_string(),
        },
        Utente {
            name: "Francesca".to_string(),
        },
    ];

    res.render(Json(utenti));
}

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt().init();

    let router = Router::new()
        .get(hello)
        .push(Router::with_path("utenti").get(lista_utenti));

    let acceptor = TcpListener::new("127.0.0.1:5800").bind().await;

    Server::new(acceptor).serve(router).await;
}

Enjoy!


Condividi

Commentami!