userocket::serde::json::{serde_json::json,Json,Value};userocket::{delete,get,post,put};usecrate::module::Article;#[get("/")]pubfnindex()-> &'staticstr{"Hello, world!"}#[get("/api")]pubasyncfnget_article_list()-> Value{json!({"res": "Test Success!"})}#[get("/api/<in_id>")]pubasyncfnget_article_by_id(in_id: usize)-> Option<Json<Article>>{Some(Json(Article{id: in_id,title: "a title".to_string(),author: "恐咖兵糖".to_string(),content: "一些内容".to_string(),created_at: "2022-02-14 ".to_string(),}))}#[post("/api", format = "json", data = "<article>")]pubasyncfnpost_article(article: Json<Article>)-> Value{json!({"res": "Post Success!","post": format!("{:?}",article)})}#[put("/api/<in_id>", format = "json", data = "<article>")]pubasyncfnput_article(in_id: usize,article: Json<Article>)-> Value{json!({"res": "Put Success!","id": in_id,"put": format!("{:?}",article)})}#[delete("/api/<in_id>")]pubasyncfndelete_article(in_id: usize)-> Value{json!({"res": "Delect Success","id": in_id})}
更新 main.rs, 运行 cargo fmt 格式化代码。然后 cargo run 运行代码。
src\main.rs:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#[macro_use]externcraterocket;modmodule;modroutes;useroutes::*;#[launch]fnrocket()-> _{rocket::build().mount("/",routes![index])// add api
.mount("/",routes![get_article_list,get_article_by_id]).mount("/",routes![post_article,delete_article,put_article])}