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!
rust axum json
Commentami!