Swagger UI 擦除参数

Swagger UI erases Parameters

我看到的错误是,只要我在 UI 上的参数中输入内容,它就会消失。

我正在基于方法修饰动态创建控制器,所以我无法创建在构建时驱动 swagger.json 的 XML。作为一种解决方法,我创建了另一个控制器,它检查添加到运行时的控制器并输出有效的 swagger.json(或者我认为如此)。这适用于 POST,但在尝试将路由参数添加到 GET 时似乎特别失败。

这是我为 GET 生成的 json:

"openapi": "3.0.1",

  ... // cutting out unrelated other stuff

            "/api/v1/test4/{Value2}": {
               "get": {
                  "tags": [
                     ],
                  "summary": "A sample GET",
                  "parameters": [


         {
            "name": "Value2",
            "in ": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": ""
            }
         },
,
                  ],
                  "responses": {
                     "200": {
                        "description": "Success",
                        "content": {
                           "application/json": {
                                 "$ref": "#/components/schemas/TestReply"
                              }
                           }
                        }
                     }
                  }
               }
         }

该项目是 .Net Framework 4.8 项目,我使用的包是 Microsoft.AspNetCore 2.2.0 和 Swashbuckle.AspNetCore 5.5.1。

in 属性的名称中多了一个 space:

"in ": "path",
   ^
   ^

删除 space.

您还可以使用 https://editor.swagger.io 检查您的 API 定义是否存在语法错误。