如何在 Openapi 3 的运行时更改 header 的名称
how to change name of a header in runtime in Openapi 3
我有一个 api,其中 key:value 作为 header 发送到服务器。我想知道我是否可以创建一个动态 header,其名称在 运行 时间内由客户端填写?我 运行 JSON 文件由 swagger-ui 申请。
我的 API 看起来像这样:
curl -x GET $theUrl -h "customKey:customValue"
我希望客户端在 运行 时间写入与值相同的密钥(即 JSON 文件中 header 的名称)。甚至欢迎 JS 解决方案。
这是 JSON 中的 OpenAPI 3 规范:
"post": {
"tags": [
"Object APIs"
],
"summary": "Create or update object metadata",
"operationId": "CrUp_Object_Metadata",
"parameters": [
{
"$ref": "#/components/parameters/X-AUTH-Token"
},
{
"$ref": "#/components/parameters/Account"
},
{
"$ref": "#/components/parameters/Container"
},
{
"$ref": "#/components/parameters/Object"
},
{
"name": "X-Object-Meta-Book",
"in": "header",
"required": true,
"style": "simple",
"schema": {
"type": "string",
"example": "goodbye"
}
}
],
"responses": {
"202": {
"description": "Successful",
"headers": {}
}
}
}
如您所见,我有一个“Post”请求。我想将 header "X-Object-Meta-Book" 的名称更改为自定义名称。这样我就可以 post name:value 到服务器了。
图片如下:
https://i.stack.imgur.com/VJWML.jpg
OpenAPI 3 本身没有解决这个问题; headers 是名称声明为纯字符串的映射(参见 headers:https://spec.openapis.org/oas/v3.1.0#headerObject)。
这是因为 OpenAPI 的全部意义在于向客户端概述服务器的 well-defined 功能。
要表达您的服务器如何接受和处理 client-defined headers,您可以使用 openapi-extensions 或提供文字说明(您可以在其中使用 markdown 和 emoji)。
在旁注中,HTTP response code 202 does not mean "Successful",你应该修正它。
我有一个 api,其中 key:value 作为 header 发送到服务器。我想知道我是否可以创建一个动态 header,其名称在 运行 时间内由客户端填写?我 运行 JSON 文件由 swagger-ui 申请。
我的 API 看起来像这样:
curl -x GET $theUrl -h "customKey:customValue"
我希望客户端在 运行 时间写入与值相同的密钥(即 JSON 文件中 header 的名称)。甚至欢迎 JS 解决方案。
这是 JSON 中的 OpenAPI 3 规范:
"post": {
"tags": [
"Object APIs"
],
"summary": "Create or update object metadata",
"operationId": "CrUp_Object_Metadata",
"parameters": [
{
"$ref": "#/components/parameters/X-AUTH-Token"
},
{
"$ref": "#/components/parameters/Account"
},
{
"$ref": "#/components/parameters/Container"
},
{
"$ref": "#/components/parameters/Object"
},
{
"name": "X-Object-Meta-Book",
"in": "header",
"required": true,
"style": "simple",
"schema": {
"type": "string",
"example": "goodbye"
}
}
],
"responses": {
"202": {
"description": "Successful",
"headers": {}
}
}
}
如您所见,我有一个“Post”请求。我想将 header "X-Object-Meta-Book" 的名称更改为自定义名称。这样我就可以 post name:value 到服务器了。
图片如下: https://i.stack.imgur.com/VJWML.jpg
OpenAPI 3 本身没有解决这个问题; headers 是名称声明为纯字符串的映射(参见 headers:https://spec.openapis.org/oas/v3.1.0#headerObject)。
这是因为 OpenAPI 的全部意义在于向客户端概述服务器的 well-defined 功能。
要表达您的服务器如何接受和处理 client-defined headers,您可以使用 openapi-extensions 或提供文字说明(您可以在其中使用 markdown 和 emoji)。
在旁注中,HTTP response code 202 does not mean "Successful",你应该修正它。