You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenAPI Generator中@分隔路径参数识别异常的解决方法

解决方案

问题出在OpenAPI Generator的路径参数解析逻辑上:默认情况下,路径参数会被解析为从{到下一个/或路径末尾的内容,所以{middlename}@{lastname}会被误判为一个名为middlename}@{lastname}的参数,而非两个独立参数。

要在不修改路径的前提下解决这个问题,只需给middlename参数添加正则表达式约束,明确它的匹配范围是@符号之前的内容:

  • 在middlename的参数定义中,添加pattern字段,值为^[^@]+$(表示匹配不包含@的任意字符串)
  • 这个正则会告诉解析器:middlename参数仅匹配到@为止,后续的{lastname}是独立的路径参数

修改后的Swagger规范片段如下:

"/human/{firstname}/me/{middlename}@{lastname}": {
    "get": {
      "operationId": "someid",
      "parameters": [
        {
          "name": "middlename",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^[^@]+$" // 添加参数匹配范围约束
          }
        },
        {
          "name": "lastname",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "height",
          "in": "query",
          "schema": {
            "type": "string"
          }
        },
        {
          "name": "firstname",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "responses": {
        "default": {
          "description": "default response",
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        }
      }
    }
  }

这样修改后,OpenAPI Generator就能正确识别middlename和lastname为两个独立的路径参数,同时保持原路径不变。

内容的提问来源于stack exchange,提问作者Sam6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 19:32:20