如何通过使用actix-web的API调用返回响应?

时间:2019-09-29 21:11:10

标签: rust request actix-web

我正试图从Rust subreddit上获取帖子,并将响应返回给我的前端。

这是我的App

App::new()
    .data(Client::default())
    .wrap(middleware::Logger::default())
    .service(
        web::resource("/get/rust/posts").route(web::get().to_async(get_rust_posts))
    )

处理函数:

fn get_rust_posts(req: HttpRequest, client: web::Data<Client>) -> impl Future<Item = HttpResponse, Error = Error> {
  client.get("http://www.reddit.com/r/rust.json") // create request builder
    .header("User-Agent", "Actix-web")
    .send() // send http request
    .map_err(Error::from)
    .and_then(|resp| {
      // return resp
    })
}

依赖性:

[dependencies]
actix-web = "1.0.7"
futures = "0.1.29"

1 个答案:

答案 0 :(得分:1)

fn get_rust_posts(req: HttpRequest, client: web::Data<Client>) -> impl Future<Item = HttpResponse, Error = Error> {
  client.get("http://www.reddit.com/r/rust.json") // create request builder
    .header("User-Agent", "Actix-web")
    .send() // send http request
    .map_err(Error::from)
    .and_then(|resp| Ok::<HttpResponse, Error>(HttpResponse::Ok().streaming(resp)))
}

它可以在Ubuntu Linux上运行,但目前doesn't work on Windows

相关问题