是否可以定义一个参数集并引用它?

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"
        }
      ]
    }
  }
}