0

我正在研究一种将微服务从 Ruby 移植到 Rust 的方法。我选择的框架是 Actix(但其他任何人都可以毫无问题地工作)。现在,我试图了解如何创建一个接收两个 JSON 作为输入的 POST 方法。这两个 JSON 有两个完全不同的结构,并且在结构内可以有不同的对象(JSON 对象)稍后存储在两个 PostgreSQL JSONB 字段中。

关于如何构造函数和相关结构的任何提示?我想将它作为字符串接收,但我不确定它是正确的做法。

4

1 回答 1

1

这很容易。只需使用具有常规字段的结构和两种数据类型的两个单独的结构声明。

 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
}
于 2020-07-16T21:36:10.900 回答