问题标签 [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.
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::FromRequest
trait 实现)解析 JSON 主体,该方法需要 2 个参数:
&actix_web::HttpRequest
&mut actix_web::dev::Payload
我的问题是获取actix_web::dev::Payload
. 我尝试使用该actix_web::HttpRequest::take_payload
方法(来自actix_web::HttpMessage
特征实现),但特征实现将单位值声明为Stream
有效负载内部,这意味着我被卡住了。我认为这是由于框架的异步特性,并且可能在调用处理程序时尚未收到请求正文。然而,这只是一个假设。
我知道上面的代码片段无法编译并包含其他问题,但它传达了总体思路。我希望有一种方法可以从路径中获取 ID 参数的值,并且还能够解析同一请求的 JSON 正文,但到目前为止我还没有找到。
rust - 如何在 actix-web 1.0 中间件中读取请求正文?
我想在 actix-web 1.0 的中间件中读出正文。我正在使用闭包式中间件,使用wrap_fn
.
我的基本设置是这样的:
我需要magical_body_read_function()
可悲的是不存在的东西。
通过阅读示例和使用,我拼凑了一些看起来可以工作的东西,take_payload()
但遗憾的是,它没有用:
给我
然后我尝试了一种使用完整中间件的方法:
可悲的是,这也导致了非常相似的错误:
json - 为什么 actix-web 服务发送文本/纯文本而不是 JSON 以获取身份验证错误?
我用 actix 制作了一个 web 服务,我正在尝试使用 Actix-Web 1.0 - Complete Tutorial 来实现 Auth Web Microservice with Rust中的身份验证流程:
当我使用 httpie 和其他人进行测试时,我得到的是文本而不是 JSON:
TokenResult
除了返回 JSON之外的所有其他方法和错误。
我的依赖:
server - 如何从 actix-web 中间件返回早期响应?
我的客户通过标头中的令牌进行授权Authorization
,每个请求都需要检查该令牌。如果此标头丢失或找不到对应的用户,我想返回 HTTP 代码Unauthorized
,否则我想正常处理请求。
目前我有很多重复的代码,因为我在每个请求处理程序中检查这个标头。actix 文档在第一段中建议可以halt request processing to return a response early
. 如何做到这一点?
由于我还没有找到实现此行为的示例,因此我尝试提出自己的中间件函数,但无法编译。
我已经将返回值装箱以克服返回两种不同类型 (ServiceResponse
和Map
) 的问题,所以在如何有条件地返回不同类型的期货?不是问题。更重要的是,我不知道哪些类型的 trait 实现需要作为该wrap_fn
函数的返回值。我现在拥有的那些不起作用。
我在编译时遇到了两个错误。
1.
2.
mongodb - Rust Actix Web 是否支持 MongoDB?
我有一个新的 Rust Programming 后端学习。从 Web 框架开始。因为我想在 MongoDB 中使用 Rust 后端,所以我有 Nickel 的示例代码。无论如何,我也看到有 Actix Web 框架。
Actix Web 是否像 Nickel 一样支持 MongoDB?
以下示例为 MongoDB 提供 Nickel。
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?
这里有什么我应该注意的问题还是我完全错了?
rust - “Urlencoded 有效负载大小大于允许的大小(默认值:256kB)”
我有一个格式化 MySQL 查询的小型 Rust 程序,但我发现它在更大的查询上失败,返回
Urlencoded 有效负载大小大于允许的大小(默认值:256kB)
我正在使用actix web,它看起来像这样
调用这个的 PHP 脚本看起来像
我错过了什么,或者为什么这似乎会为 16kB 而不是 256kB 抛出此错误?
我看到也可以设置Payload
配置,但我不完全确定如何/在我现有的代码中应用它。
rust - 如何使用 actix-web 的 Json 类型解决“serde::Deserialize 的实现不够通用”?
我正在使用 actix-web 编写服务器:
编译器给出了这个错误:
我应该如何解决这个问题?
rust - 我可以从 Actix-Web 中间件获取响应正文并对其进行修改吗?
我正在开发一个带有框架的应用程序,rust
并且actix-web
我在应用程序中插入了一些中间件实例。
我计划中间件会修改响应的正文并在 call() 方法中返回响应,但我找不到解决方案。我找不到可以从中获取文本ServiceResponse
并对其进行修改的示例代码。
你们能帮我一些获取响应正文并修改它的示例代码吗?
以下是我使用的示例代码。我添加了一条评论以告知我想要SayHiMiddleware->call()
的“sample.rs”
// 示例.rs
// main.rs
谢谢...
rust - 如何使用 actix-web 从 API 调用返回响应?
我正在尝试从 Rust subreddit 获取帖子并将响应返回到我的前端。
这是我的App
:
处理函数:
依赖项: