Rust,全栈Web开发框架Rocke中文手册
大家好,我是梦兽。梦兽使用Rust开发web时使用的是Rocke,Rocke翻译为火箭的意思。所以它的开发效率相对其他Rust框架来讲会简单许多。
❝
本次使用的版本为0.5,2024-05-12为这个时间段为最新,如果以后有重大变化。将会更新新集合!
❞
Rocket
Rust Rocket 是一个强大的、功能齐全的Rust web框架,用于构建web应用程序。它以人性化、安全性和性能为设计目标,提供了构建web服务器和处理HTTP请求的简单直观的API。
它的定位有点类似Golang中的gin,主要的特点如下:
- 路由系统:Rocket提供了一个声明式的路由系统,允许你通过模式和处理器定义路由。你可以将HTTP方法(GET、POST等)映射到处理这些请求的特定函数。
- 请求和响应对象:Rocket拥有丰富的请求(Request)和响应(Response)抽象对象,使你可以方便地操作请求数据和构建响应。
- 中间件支持:Rocket支持中间件,允许你在请求处理链中插入代码来执行通用任务,如日志记录、验证或缓存。
- 类型安全:Rocket利用Rust的类型系统,确保在编译时进行错误检查,提高了代码的安全性。
- 自定义序列化和反序列化:Rocket支持自定义数据类型的序列化和反序列化,可以方便地处理JSON、XML等数据格式。
- 会话支持:Rocket提供了内置的会话管理,可以安全地在请求之间存储用户数据。
- 模板引擎:Rocket与多种模板引擎(如Diesel和tera)兼容,方便你生成动态HTML页面。
快速开始
使用前需要Rust到最新版本
rustup default stable
# 0.5.0这个版本对应的Rust应该在1.75.0左右
Hello, world!
创建你的第一个应用,首先创建一个新的基于二进制的 Cargo 项目并切换到新目录:
cargo new hello-rocket --bin
cd hello-rocket
现在,将 Rocket 添加为 Cargo.toml 中的依赖项:
[dependencies]
rocket = "0.5.0"
修改 src/main.rs ,使其包含 Rocket Hello, world! 程序的代码,复制如下:
#[macro_use] extern crate rocket;
// 也可以简写 extern crate rocket;
#[get("/")]
fn index() -> &'static str {
"Hello, world!"
}
#[launch]
fn rocket() -> _ {
rocket::build().mount("/", routes![index])
}
- #[macro_use] extern crate rocket; 这一行是运行Rust允许框架在当前模块(rocket)中使用宏,这一行是必须,放在入口文件即可。
- #[get("/")]: 这是一个 Rocket 提供的宏,用于声明一个 HTTP GET 请求的处理函数。这个函数将在用户访问应用的根 URL("/")时被调用。
- #[launch]: 另一个 Rocket 宏,它告诉框架这个函数应该在应用启动时运行。
- routes![index]: 这是一个宏,它将 index 函数作为路由处理程序列表的一部分。这告诉 Rocket 应用该处理哪些 HTTP 请求。
使用 cargo run 编译并运行程序。您应该看到以下内容:
cargo run
🔧 Configured for debug.
>> address: 127.0.0.1
>> port: 8000
>> workers: [..]
>> keep-alive: 5s
>> limits: [..]
>> tls: disabled
>> temp dir: /tmp
>> log level: normal
>> cli colors: true
🛰 Routes:
>> (index) GET /
🚀 Rocket has launched from http://127.0.0.1:8000
如果你想修改成8080这种通用的Java后端端口,可以添加Rocket.toml
文件。
[default]
address = "127.0.0.1"
port = 8080
workers = 16
更多配置以后会陆续介绍。
如果您喜欢这篇微信,请分享给其他可能觉得有用的人。如果你在微信观看可以点在看支持一下。您也可以继续关注梦兽编程微信公众号,了解更多关于 JavaScript、React、Next.js、MongoDB、Rust、Golang 和 Web 开发的内容。 如果想加入交流群关注梦兽编程微信公众号后获取二维码即可。
本文使用 markdown.com.cn 排版
相关内容