花了一些时间学习 Rust,现在开始研究基于 Web 的应用程序。在 rust 中使用 Rocket crate 我探索了 GET 请求方法并很好地理解了这一点。现在在我的代码中有一个 POST 请求并且它运行,但我不确定如何将一本新书实际发布到我的虚拟数据库中?如何测试代码以检查收到的 REQUEST 是否正在添加新书?
我正在使用 MacOS。
抱歉,我对此很陌生-非常感谢您的帮助!
#![feature(decl_macro)]
#[macro_use] extern crate rocket;
use rocket::response::content::Json;
use rocket::request::Form;
#[get("/hello")]
fn hello() -> Json<&'static str> {
Json("{
'status': 'success',
'message': 'Hello API!'
'server': 'live'
}")
}
#[derive(FromForm, Debug)]
struct Book {
title: String,
author: String,
isbn: String
}
#[post("/book", data = "<book_form>")]
fn new_book(book_form: Form<Book>) -> String {
let book: Book = book_form.into_inner();
let mut dummy_db: Vec<Book> = Vec::new();
dummy_db.push(book);
format!("Book added successfully: {:?}", dummy_db)
}
fn main() {
rocket::ignite()
.mount("/api", routes![hello])
.mount("/book", routes![new_book])
.launch();
}