有没有办法扩展 Swashbuckle 中的引用以提供内联模式?

Is there a way to expand references in Swashbuckle to provide inline schemas?

Swashbuckle 中是否有一种机制可以防止在 parameters/responses/etc 中引用它们来创建定义?

默认情况下,您可能会得到如下所示的路径:

"/profile": {
  "get": {
    "summary": "Get my profile details.",
    "produces": [
      "application/json",
    ],
    "parameters": [],
    "responses": {
      "200": {
        "description": "Success",
        "schema": {
          "$ref": "#/definitions/ProfileModel"
        }
      }
    }
  }
}

但我想要的是它像这样内联扩展架构:

"/profile": {
  "get": {
    "summary": "Get my profile details.",
    "produces": [
      "application/json",
    ],
    "parameters": [],
    "responses": {
      "200": {
        "description": "Success",
        "schema": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "description": "id"
            },
            "firstName": {
              "type": "string",
              "description": "firstName"
            },
            "surname": {
              "type": "string",
              "description": "surname"
            },
            "emailAddress": {
              "type": "string",
              "description": "emailAddress"
            }
          }
        }
      }
    }
  }
}

我查看了 this Whosebug question,但我认为这不是我要找的东西(或者可能被误解了)。

查看了 Swashbuckle README 以了解其功能但不足。如有任何帮助,我们将不胜感激。

有关其他上下文,请查看第 1.7 节中的 the Swashbuckle PDF documentation,我基本上想绕过或还原他们描述为

的操作

automatically generating a corresponding schema for user-defined reference types and reference the definition via the $ref keyword.

深入研究代码库,目前看来还不可能。

但是,您可以从 the one in source 创建一个自定义 ISchemaGenerator 并将 DataType.Object 情况下的 GenerateConcreteSchema 方法更改为不 return 作为参考和这解决了问题。