Rust/Rocket中POST声明有问题



我正试图用rocket编写一个简单的api来帮助自己学习rust,但在我尝试声明POST路由后遇到了这个错误:

error: malformed attribute
--> src/main.rs:26:1
|
26 | #[post("/producers", format="application/json", data =<"prod">)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: expected syntax: #[post(key = value, ..)]

以下是该路由的函数声明:

#[post("/producers", format="application/json", data =<"producer">)]
fn post_producer(producer: Json<Producer>) -> String {
return("hello".to_string());
}

我正在导入这些宏:

#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use] extern crate rocket;
#[macro_use] extern crate serde_derive;
#[macro_use] extern crate rocket_contrib;
use rocket_contrib::json::Json;

我为GET声明了另一个方法,但那个方法运行良好。我做了一些研究,发现了以下示例和文档:https://api.rocket.rs/v0.4/rocket_codegen/attr.post.htmlhttps://rocket.rs/v0.4/guide/requests/#format

据我所知,我正在遵循这两页中提到的惯例,我有点不知所措。我是否缺少一些语法或导入?

根据文档,数据参数必须具有<>引号内。因此data="<prod>"应该解决这个问题。

最新更新