是否可以定义一个参数集并引用它?
Is it possible to define a parameter set and reference it?
我有多个参数想引用,但不想一一指定。
此代码段不会显示参数:
{
...
"paths": {
"/stuff": {
"get": {
"description": "Gets stuff",
"operationId": "getStuff",
"parameters": {
"$ref": "#/definitions/set1"
}
}
}
},
"parameters": {
"a": {
"name": "a",
"in": "query",
"description": "Param A",
"required": false,
"type": "string"
},
"b": {
"name": "b",
"in": "query",
"description": "Param B",
"required": false,
"type": "string"
}
},
"definitions": {
"set1": [
{
"$ref": "#/parameters/a"
},
{
"$ref": "#/parameters/b"
}
],
"set2": ...
}
}
这可能吗,还是我必须为每个请求指定每个参数,例如 set1
?
确实这不是一个有效的定义,正如您所建议的,您必须通过引用全局参数来分别指定每个参数。如果您的参数为特定路径下的所有操作共享,您可以在路径级别定义这些参数,它们将应用于所有操作。
对于单个操作,您将其定义为:
"paths": {
"/stuff": {
"get": {
"description": "Gets stuff",
"operationId": "getStuff",
"parameters": [
{
"$ref": "#/parameters/a"
},
{
"$ref": "#/parameters/b"
}
]
}
}
}
我有多个参数想引用,但不想一一指定。
此代码段不会显示参数:
{
...
"paths": {
"/stuff": {
"get": {
"description": "Gets stuff",
"operationId": "getStuff",
"parameters": {
"$ref": "#/definitions/set1"
}
}
}
},
"parameters": {
"a": {
"name": "a",
"in": "query",
"description": "Param A",
"required": false,
"type": "string"
},
"b": {
"name": "b",
"in": "query",
"description": "Param B",
"required": false,
"type": "string"
}
},
"definitions": {
"set1": [
{
"$ref": "#/parameters/a"
},
{
"$ref": "#/parameters/b"
}
],
"set2": ...
}
}
这可能吗,还是我必须为每个请求指定每个参数,例如 set1
?
确实这不是一个有效的定义,正如您所建议的,您必须通过引用全局参数来分别指定每个参数。如果您的参数为特定路径下的所有操作共享,您可以在路径级别定义这些参数,它们将应用于所有操作。
对于单个操作,您将其定义为:
"paths": {
"/stuff": {
"get": {
"description": "Gets stuff",
"operationId": "getStuff",
"parameters": [
{
"$ref": "#/parameters/a"
},
{
"$ref": "#/parameters/b"
}
]
}
}
}