将所有 headers 定义为单个字典

Define all headers as a single dictionary

我想在规范(即字符串字典)中使用“任何 header 欢迎”定义 http 端点。现在我必须考虑每一个(已知)header one-by-one:

"parameters": [
      {
        "name": "x-header-1",
        "in": "header",
        "type": "string"
      },
      {
        "name": "x-header-2",
        "in": "header",
        "type": "string",
      }
]

我想这样定义它们

"parameters": [
       {
          "name": "headers"
          "in": "headers"
       }
 ]

最终在 C# 中有这样的代码 SomeMethod([FromHeader]Dictionary<string, string> ...) 用于此定义。 这可能吗?

OpenAPI 规范无法像您的示例中那样定义任意 header。这是相应的增强请求:
Support wildcard header/parameter


如果您正在设计 new API(而不是记录现有的 API),您可以尝试使用包含 comma-separated key=value 对的单个 header,如上面 link 中的评论中所建议:

X-MyHeader: key1=value, key2=value, key3=value

在 OpenAPI 3.0 中,这样的 header 可以定义为展开的 object:

# openapi: 3.0.3

parameters:
  - in: header
    name: X-MyHeader
    schema:
      type: object   # Free-form object
      example:
        key1: value1
        key2: value2
    style: simple    # Default (and only) style for headers, can be omitted 
    explode: true