Rust Rocket web 框架学习 二Request
Rocket Request
GET
-
添加
get
过程宏,并使用<xxx>
, 指定请求参数#[get("/hello/<name>/<age>/<cool>")] fn hello(name: &str, age: u8, cool: bool) -> String { if cool { format!("You're a cool {} year old, {}!", age, name) } else { format!("{}, we need to talk about your coolness.", name) } }
-
通过
<xxx...>
指定 list 参数use std::path::PathBuf; #[get("/page/<path..>")] fn get_page(path: PathBuf) { /* ... */ }
-
通过
routes!
,注册路由rocket::build() .mount("/", routes![index]) .mount("/base", routes![get_exs, get_ex, post_ex, put_ex, delete_ex])
POST
-
添加
post
过程宏,并使用data = <xxx>
, 指定body data
。xxx
必须实现FromData
trait# [post("/", data = "<input>")] fn new(input: T) { /* .. */ }
-
也可以使用
JSON
作为 body datause rocket::serde::{Deserialize, json::Json}; #[derive(Deserialize)] #[serde(crate = "rocket::serde")] struct Task<'r> { description: &'r str, complete: bool } #[post("/todo", data = "<task>")] fn new(task: Json<Task<'_>>) { /* .. */ }
JSON
-
在
Cargo.toml
中添加json feature
.rocket = { version = "=0.5.0-rc.3", features = ["json"] }
-
引入 Rocket 中的 json crate
use rocket::serde::json::serde_json::json; use rocket::serde::json::{Json, Value}; use rocket::serde::{Deserialize, Serialize};
-
创建结构体,并序列化
#[derive(Serialize, Deserialize)] #[serde(crate = "rocket::serde")] struct Person<'a> { id: usize, name: &'a str, age: u8, }
-
通过
Json
结构体 或json!
, 创建Json
#[get("/")] fn index<'a>() -> Json<Person<'a>> { Json(Person { id: 0, name: "Tome", age: 9, }) } #[get("/ex/<id>")] async fn get_ex(id: usize) -> Value { json!(Person { id, name: "Joy", age: 10 }) }
-
完整代码参考: github.com/panmin-code…
参考
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgeejke
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13