Как вернуть ответ от вызова API с помощью actix-web? - PullRequest
2 голосов
/ 30 сентября 2019

Я пытаюсь получить сообщения из субреддита Rust и вернуть ответ моему веб-интерфейсу.

Это моя 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 Ответ

1 голос
/ 01 октября 2019
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, но на данный момент не работает на Windows .

...