我正在研究一种将微服务从Ruby移植到Rust的方法。我选择的框架是Actix (但其他任何人都可以毫无问题地工作)。现在,我正在尝试理解如何创建一个POST方法,该方法接收两个JSON作为输入。这两个JSON具有两个完全不同的结构,并且在该结构中可以有不同的对象(JSON对象),稍后将其存储在两个PostgreSQL JSONB字段中。
有什么关于如何构造函数和相关结构的提示吗?我想以字符串的形式接收它,但我不确定这样做是否正确。
发布于 2020-07-16 21:36:11
这很简单。只需对两种类型的数据使用带有常规字段的结构和两个单独的结构声明即可。
struct FirstT {}
struct SecondT {}
#[derive(Serialize, Deserialize,Debug)]
struct PostData {
first_t: FirstT,
second_t: SecondT
}
async fn submit(data: web::Json<PostData>) -> HttpResponse {
//use data.first_t data.second_t
}
#[actix_rt::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new()
.data(web::JsonConfig::default().limit(4096))
.service(web::resource("/submit").route(web::post().to(submit)))
})
.bind("127.0.0.1:8000")?
.run()
.await
}
https://stackoverflow.com/questions/62934019
复制相似问题