我想要引用多个参数,但我不想逐个指定它们。
此代码段不会显示参数:
{
...
"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
这样的每个参数?
答案 0 :(得分:2)
实际上,这不是一个有效的定义,正如您所建议的那样,您必须通过引用全局参数来单独指定每个参数。如果为特定路径下的所有操作共享参数,则可以在路径级别定义这些参数,并将它们应用于所有操作。
对于单个操作,您将其定义为:
"paths": {
"/stuff": {
"get": {
"description": "Gets stuff",
"operationId": "getStuff",
"parameters": [
{
"$ref": "#/parameters/a"
},
{
"$ref": "#/parameters/b"
}
]
}
}
}