问题标签 [actix-web]

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 投票
2 回答
2394 浏览

json - 如何使用 Actix-Web 从同一请求中提取路径参数并解析 JSON 正文

我正在使用 Actix-Web v1.0.7 在 Rust 中编写一个 Web 应用程序。我正在尝试创建一个可以访问路径参数并解析请求的 JSON 正文的路由处理程序。但是,到目前为止,我还没有这样做。

我尝试声明一个可以接受actix_web::HttpRequest作为参数的处理函数。match_info这使我可以毫无问题地使用方法访问路径参数。然后我尝试使用actix_web::web::Json::from_request方法(来自actix_web::FromRequesttrait 实现)解析 JSON 主体,该方法需要 2 个参数:

  1. &actix_web::HttpRequest
  2. &mut actix_web::dev::Payload

我的问题是获取actix_web::dev::Payload. 我尝试使用该actix_web::HttpRequest::take_payload方法(来自actix_web::HttpMessage特征实现),但特征实现将单位值声明为Stream有效负载内部,这意味着我被卡住了。我认为这是由于框架的异步特性,并且可能在调用处理程序时尚未收到请求正文。然而,这只是一个假设。

我知道上面的代码片段无法编译并包含其他问题,但它传达了总体思路。我希望有一种方法可以从路径中获取 ID 参数的值,并且还能够解析同一请求的 JSON 正文,但到目前为止我还没有找到。

0 投票
3 回答
2087 浏览

rust - 如何在 actix-web 1.0 中间件中读取请求正文?

我想在 actix-web 1.0 的中间件中读出正文。我正在使用闭包式中间件,使用wrap_fn.

我的基本设置是这样的:

我需要magical_body_read_function()可悲的是不存在的东西。

通过阅读示例和使用,我拼凑了一些看起来可以工作的东西,take_payload()但遗憾的是,它没有用:

给我

然后我尝试了一种使用完整中间件的方法:

可悲的是,这也导致了非常相似的错误:

0 投票
1 回答
963 浏览

json - 为什么 actix-web 服务发送文本/纯文本而不是 JSON 以获取身份验证错误?

我用 actix 制作了一个 web 服务,我正在尝试使用 Actix-Web 1.0 - Complete Tutorial 来实现 Auth Web Microservice with Rust中的身份验证流程:

当我使用 httpie 和其他人进行测试时,我得到的是文本而不是 JSON:

TokenResult除了返回 JSON之外的所有其他方法和错误。

我的依赖:

0 投票
2 回答
4137 浏览

server - 如何从 actix-web 中间件返回早期响应?

我的客户通过标头中的令牌进行授权Authorization,每个请求都需要检查该令牌。如果此标头丢失或找不到对应的用户,我想返回 HTTP 代码Unauthorized,否则我想正常处理请求。

目前我有很多重复的代码,因为我在每个请求处理程序中检查这个标头。actix 文档在第一段中建议可以halt request processing to return a response early. 如何做到这一点?

由于我还没有找到实现此行为的示例,因此我尝试提出自己的中间件函数,但无法编译。

我已经将返回值装箱以克服返回两种不同类型 (ServiceResponseMap) 的问题,所以在如何有条件地返回不同类型的期货?不是问题。更重要的是,我不知道哪些类型的 trait 实现需要作为该wrap_fn函数的返回值。我现在拥有的那些不起作用。

我在编译时遇到了两个错误。

1.

2.

0 投票
2 回答
681 浏览

mongodb - Rust Actix Web 是否支持 MongoDB?

我有一个新的 Rust Programming 后端学习。从 Web 框架开始。因为我想在 MongoDB 中使用 Rust 后端,所以我有 Nickel 的示例代码。无论如何,我也看到有 Actix Web 框架。

Actix Web 是否像 Nickel 一样支持 MongoDB?

以下示例为 MongoDB 提供 Nickel。

0 投票
0 回答
310 浏览

rust-actix - 如果提供 SSL,Actix 会自动处理 HTTP/2 websocket 升级吗?

我想知道是否可以在 Actix 中升级 HTTP/2 并使用带有二进制数据交换的 websocket。我目前正在关注此处提供的示例:https ://github.com/actix/examples/blob/master/websocket/src/main.rs

根据以下文档:https ://github.com/actix/actix-website/blob/master/content/docs/http2.md它声称:actix-web automatically upgrades connections to HTTP/2.0 if possible.

基本上,如果我使用上面的示例(添加必要的 SSL 详细信息)并从我的客户端发出请求作为 HTTP/2 websocket 请求,这个源会自动充当 HTTP/2 还是只使用基本的 websocket?

这里有什么我应该注意的问题还是我完全错了?

0 投票
1 回答
653 浏览

rust - “Urlencoded 有效负载大小大于允许的大小(默认值:256kB)”

我有一个格式化 MySQL 查询的小型 Rust 程序,但我发现它在更大的查询上失败,返回

Urlencoded 有效负载大小大于允许的大小(默认值:256kB)

我正在使用actix web,它看起来像这样

调用这个的 PHP 脚本看起来像

我错过了什么,或者为什么这似乎会为 16kB 而不是 256kB 抛出此错误?

我看到也可以设置Payload配置,但我不完全确定如何/在我现有的代码中应用它。

0 投票
1 回答
3333 浏览

rust - 如何使用 actix-web 的 Json 类型解决“serde::Deserialize 的实现不够通用”?

我正在使用 actix-web 编写服务器:

编译器给出了这个错误:

我应该如何解决这个问题?

0 投票
1 回答
879 浏览

rust - 我可以从 Actix-Web 中间件获取响应正文并对其进行修改吗?

我正在开发一个带有框架的应用程序,rust并且actix-web我在应用程序中插入了一些中间件实例。

我计划中间件会修改响应的正文并在 call() 方法中返回响应,但我找不到解决方案。我找不到可以从中获取文本ServiceResponse并对其进行修改的示例代码。

你们能帮我一些获取响应正文并修改它的示例代码吗?

以下是我使用的示例代码。我添加了一条评论以告知我想要SayHiMiddleware->call()的“sample.rs”

// 示例.rs

// main.rs

谢谢...

0 投票
1 回答
483 浏览

rust - 如何使用 actix-web 从 API 调用返回响应?

我正在尝试从 Rust subreddit 获取帖子并将响应返回到我的前端。

这是我的App

处理函数:

依赖项: