1

花了一些时间学习 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();
}
4

0 回答 0