将所有 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
我想在规范(即字符串字典)中使用“任何 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