首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过actix-web返回API调用的响应?

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

Stack Overflow用户
提问于 2019-09-30 05:11:10
回答 1查看 438关注 0票数 2

我正在尝试从Rust subreddit获取帖子,并将回复返回给我的前端。

这是我的App

代码语言:javascript
复制
App::new()
    .data(Client::default())
    .wrap(middleware::Logger::default())
    .service(
        web::resource("/get/rust/posts").route(web::get().to_async(get_rust_posts))
    )

处理函数:

代码语言:javascript
复制
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
    })
}

依赖关系:

代码语言:javascript
复制
[dependencies]
actix-web = "1.0.7"
futures = "0.1.29"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-01 22:28:33

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58159224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档