Creare un web service in Rust con axum

Mattepuffo's logo
Creare un web service in Rust con axum

Creare un web service in Rust con axum

axum è uno dei tanti web framework per Rust.

Da quello che ho capito è tra i più apprezzati.

In questo articolo vediamo come creare un semplice web service che risponde in JSON.

Queste le dipendenze richieste:

[dependencies]
axum = "0.8.1"
serde = { version = "1.0.217", features = ["derive"] }
tokio = { version = "1.43.0", features = ["full"] }

Qui un esempio di codice:

use axum::{routing::get, Json, Router};
use serde::Serialize;

#[derive(Serialize)]
struct User {
    id: u32,
    username: String,
}

#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(root));

    let listener = tokio::net::TcpListener::bind("127.0.0.1:3000")
        .await
        .unwrap();

    println!("Server avviato: {}", listener.local_addr().unwrap());
    axum::serve(listener, app).await.unwrap();
}

async fn root() -> Json<Vec<User>> {
    let mut vec: Vec<User> = Vec::new();
    vec.push(User {
        id: 1,
        username: "test1".to_string(),
    });

    vec.push(User {
        id: 2,
        username: "test2".to_string(),
    });

    Json(vec)
}

Enjoy!


Condividi

Commentami!