问题标签 [rust-actix]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
337 浏览

rust - 我可以在 AWS Lambda 上使用 actix_web 而不为 HttpServer 生成线程吗?

我正在使用 AWS Lambda 和 Rust 构建一个 REST API。我希望 Rust 代码能够处理同一个库中的多个资源,因为这似乎比为每个资源创建单独的二进制文件更有意义。

我想做的是使用actix_web的配置和中间件选项来配置我的 REST 端点。因为我的代码在 AWS Lambda 环境中运行,所以我不需要使用HttpServer. actix_web代码只需要使用 from 的配置响应来自同一线程内的App请求actix_web

我研究了 actix_lambda但它实际上启动了一个单独的线程,HttpServer这似乎是不必要的资源使用。

我想编写的代码类似于:

问题:

  • 是否可以以类似于上面代码显示的方式使用不带的App部分?actix_webHttpServer
  • 不使用HttpServer以避免产生线程有意义吗?
  • 为什么以前没有人这样做过?
  • 为每个 REST 资源使用单独的二进制文件会更好吗?
  • 我不应该使用actix_web并创建自己的路由和中间件解决方案吗?
  • 有没有更鲁莽的方法来解决这个问题?(我是 Rust 新手)
0 投票
0 回答
89 浏览

rust - 统一 futures::future::map::Map 和 futures::future::result_::FutureResult

我正在使用以下 actix 处理程序:

在这个函数中,我做了一些分支,有时我会返回:

其他时候我回来:

哪个无法编译

我想我明白这一点,尽管这很奇怪,.map它不会返回另一个未来。但是我怎样才能统一这两个时间,以便我可以将它们用作返回类型?

更新:有人建议这是重复的:为什么 impl trait 不能用于返回多个/条件类型?但是那个问题并没有解决这个问题,它只是描述了为什么会发生这种情况。我看到问题出在 上impl Future,但我无法更改它,因为我使用的是 actix-web,它需要这个签名,或者我无法找到的类似签名,因此我问这个问题。

0 投票
1 回答
4975 浏览

rust - 如何配置 actix-web 以接受来自任何来源的 CORS 请求?

我正在使用 actix-web 构建一个 REST API。如何配置 CORS 以接受来自任何来源的请求?

上面的代码可以在网络上工作localhost:8081,但不能来自0.0.0.0:8081127.0.0.1:8081。我试图"*"允许所有,但它不起作用。我如何允许所有,或者至少允许一个特定的来源,然后传递多个 URL?

0 投票
1 回答
857 浏览

rust - 如何在 actix_web FromRequest 特征实现中返回映射的未来?

我有以下 actix_webFromRequest特征的实现:

由于返回类型是 an FnOnce,我无法弄清楚如何实际设置返回类型。根据错误消息,它应该是FnOnce<(std::boxed::Box<(dyn db::sessions::SessionRepository + 'static)>,)>,但是这告诉我这fnOnce是无效的,因为它在编译时不是已知的大小。

RealSessionRepository::from_request返回一个未来,也是该FromRequest特征的实现。

像这样插入 FnOnce 定义:

给出以下一组错误消息:

MRE 可在:https ://github.com/zlepper/actix_web_mre 获得,因为它需要 actix,而在 rust 操场上不可用。

这特别是关于当我想要一个动态特征引用时如何处理这个问题,在一个我不拥有的关联类型中,因此不能做很多改变。更具体地说,我将如何使用 FnOnce 执行此操作,其中实际实现仅在编译时生成(我认为)。

我知道我可以稍微缩短类型定义,因此它们不是完全限定的,但是这是我想使用宏生成的东西,所以据我所知,最好使用完整类型。

有没有更好的方法来输入未来的回报?目前的定义是相当毛茸茸的..

0 投票
1 回答
99 浏览

windows - 为什么我无法从 Actix 文档示例加载页面?

我正在学习 Actix 框架。该文档有示例

编译此代码后我没有错误:

在此处输入图像描述

但我无法在浏览器中打开该页面:

在此处输入图像描述

我错过了什么,为什么页面没有在我的浏览器中打开?

0 投票
1 回答
2080 浏览

rust - 在不同的端口上运行多个 actix 应用程序

我正在尝试运行两个应用程序(一个在端口 3006 上进行管理,另一个在端口 8080 上提供数据)。
他们共享数据库池、缓存...

对于actix 1.0,我有这个工作(我不知道这是否是最好的方法):

但是如何使它与 actix 2.0 一起工作?

0 投票
1 回答
1230 浏览

rust - 如何为 actix-web HttpResponse 创建流以逐块发送文件?

我想在 Rust 中使用 actix-web 流式传输加密文件。我有一个循环使用氧化钠逐块解密加密文件。我想将块发送给客户端。

我的循环如下所示:

我找到了一个streaming方法,它需要 aStream作为参数。如何创建一个可以逐块添加的流?

0 投票
1 回答
1998 浏览

rust - 如何将许多参数传递给 rust actix_web 路由

是否可以将多个参数传递给 axtic_web 路由?

对于带有一个参数的路由,一切都很好,但是对于这个例子,我在浏览器中只看到消息:wrong number of parameters: 2 expected 1,并且响应状态代码是 404。

我真的需要传递更多参数(从一到三个或四个)......

0 投票
3 回答
1597 浏览

rust - 如何在 Actix-Web 中为多种方法使用路由属性宏

Actix Web Framework中,如何使用路由属性宏 ( #[http_method("route")]) 将多个 http 方法绑定到一个函数?

例如,我有这个微不足道的端点:

我想要相同的端点处理HEAD请求,我该怎么做? 我最初的方法是堆叠宏:

但我确实得到了一个编译错误:

我已经经历了actix-web并且actix-web-codegen docs没有找到任何解决这个问题的方法

0 投票
3 回答
1127 浏览

rust - 在 actix 线程中执行同步 http 客户端获取

我有一个 actix 端点,我需要做一个同步的 http 客户端获取来获得一些结果,并返回一些数据。我的端点不能使用async,所以我不能使用任何.await方法。

我试过在我的端点中使用 reqwests 阻塞客户端,如下所示:

但它给了我错误: