当前位置: 首页 > news >正文

Rust Web框架Axum学习指南之入门初体验

一、准备阶段

确保已经安装 rust,开发环境使用 vscode 或者 rustrover 都可以。接着就可以创建项目,通过编辑器创建或者命令行创建都可以:

cargo new axum-admin

二、添加依赖

添加依赖如下:

[package]
name = "axum-admin"
version = "0.1.0"
edition = "2024"[dependencies]
axum = "0.8.4"
tokio = { version = "1.47.1", features = ["full"] }
serde = { version = "1.0.219", features = ["derive"] }
tracing-subscriber = "0.3.19"

三、体验案例

体验代码:

use axum::{routing::{get, post},http::StatusCode,Json, Router,
};
use serde::{Deserialize, Serialize};#[tokio::main]
async fn main() {tracing_subscriber::fmt::init();let app = Router::new().route("/", get(root)).route("/users", post(create_user));let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();axum::serve(listener, app).await.unwrap();
}async fn root() -> &'static str {"Hello, World!"
}async fn create_user(Json(payload): Json<CreateUser>,
) -> (StatusCode, Json<User>) {let user = User {id: 1337,username: payload.username,};(StatusCode::CREATED, Json(user))
}#[derive(Deserialize)]
struct CreateUser {username: String,
}#[derive(Serialize)]
struct User {id: u64,username: String,
}

项目启动后,在同级目录创建 http 目录,创建 test.http 文件:

### GET 默认
GET http://localhost:3000### POST 创建用户
POST http://localhost:3000/users
Content-Type: application/json{"username": "Tom"
}

四、总结

整体体验下来,还不错!下一篇会在此基础上,增加对返回结果的封装。

http://www.lryc.cn/news/620917.html

相关文章:

  • vue部署正式环境上传nginx后遇到的问题
  • MySQL中的DML(二)
  • mysql查询中的filesort是指什么
  • 第三方软件检测:软件性能测试报告(一)
  • CMake笔记:Alias Target在哪些地方可以使用
  • 使用Docker安装MeiliSearch搜索引擎
  • 【完整源码+数据集+部署教程】柠檬质量检测系统源码和数据集:改进yolo11-DBBNCSPELAN
  • nginx入门需知(含安装教程)
  • 知识的本质
  • 【MATLAB技巧】已知平面上的一些点,拟合得到一个圆的例程,给出最小二乘与非线性迭代两种解法,附下载链接
  • Swift 数据类型全景解析(基础到高阶)
  • Gradle(四)Maven 项目迁移 Gradle 项目实践
  • [激光原理与应用-274]:理论 - 波动光学 - 光是电磁波,无线电磁波可以通过天线接收和发送,为什么可见光不可以?
  • 滑动窗口题目:定长子串中元音的最大数目
  • 【读代码】开源流式语音编码器SecoustiCodec
  • MySQL的索引(索引的创建和设计原则):
  • python自学笔记8 二维和三维可视化
  • 业务敏捷性对SAP驱动型企业意味着什么?如何保持企业敏捷性?
  • 网络通信全过程:sk_buff的关键作用
  • ⭐CVPR2025 3D 高斯探测视觉基础模型3D能力
  • Mybatis学习笔记(五)
  • 3D-R1、Scene-R1、SpaceR论文解读
  • 区块链 + 域名Web3时代域名投资的新风口(上)
  • CTFSHOW | nodejs题解 web334 - web344
  • 一颗TTS语音芯片给产品增加智能语音播报能力
  • 关于RSA和AES加密
  • vue+后端
  • vue3使用leaflet地图
  • 最新去水印小程序系统 前端+后端全套源码 多套模版 免授权(源码下载)
  • 跨域及解决方案