Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[BUG][RUST] Reqwest - encoding of spaces in path parameters

未关闭 适合新手
#25,257 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

@GlenWright 已经在做这个了。

开始于 2026年10月14日。

  • #25258 来自 @GlenWright —— 未关闭

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
68/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
rust
领域
api

调研方向

问题出在 api_mod.mustache 中的辅助函数 urlencode 里,Rust 模板 reqwest 和 reqwest-trait 都用它来处理路径参数。请根据 issue 中的规范生成一个客户端,并检查空格是否被输出为 +,然后阅读这个辅助函数。完成的标准是:路径参数中的空格被编码为 %20,字面量 + 仍被编码为 %2B,并且 reqwest 和 reqwest-trait 的输出都发生了变化。

由索引模型根据 Issue 内容生成。

描述

Issue: Bug
Bug Report Checklist
  • Have you provided a full/minimal spec to reproduce the issue?
  • Have you validated the input using an OpenAPI validator?
  • Have you tested with the latest master to confirm the issue still exists?
  • Have you searched for related issues/PRs?
  • What's the actual output vs expected output?
  • [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description

When using reqwest, path parameters with spaces are incorrectly encoded with a + instead of %20. For example, Glen Wright becomes Glen+Wright, when it should be Glen%20Wright.

openapi-generator version

Reproduced with latest at time of writing: 1fdc3307942fcf853990cda8701d71c7e0753157.

OpenAPI declaration file content or url
openapi: 3.0.3
info:
  title: Reqwest - path parameter space encoding
  version: "1.0.0"
paths:
  /api/{spacedParam}:
    parameters:
      - in: path
        name: spacedParam
        schema:
          type: string
        required: true
        description: A path parameter with a space.
    get:
      operationId: getValue
      responses:
        '200':
          description: A returned value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/returnedValue'
              example:
                spacedParam: A path parameter with a + instead of a space.
components:
  schemas:
    returnedValue:
      type: object
      required:
        - spacedParam
      properties:
        spacedParam:
          type: string
Generation Details

Generate client with -i spec.yaml -g rust -o output.

Steps to reproduce
  • Generate client as above.
  • Call api.get_value(&config, "Spaced Param");
  • Observe that the path parameter is encoded as Spaced+Param.
Related issues/PRs

#11242. is the same issue, but for Java.

Suggest a fix

Update the urlencode function in api_mod.mustache for reqwest and reqwest-trait to replace + with %20. This will not impact actual instances of + as they are encoded properly as %2B.

主要语言
Java
星标
26.8k
派生
7.7k
平均合并
1 天 15 小时
30 天内合并 PR
144

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

OpenAPITools/openapi-generator 的其他 Issue

查看 OpenAPITools/openapi-generator 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。