Можно ли определить набор параметров и ссылаться на него?


У меня есть несколько параметров, на которые я хочу ссылаться, но я не хочу указывать их по одному.

Этот фрагмент не заставляет параметры отображаться:

{
    ...
    "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, для каждого запроса?

1 6

1 ответ:

Действительно, это неверное определение, и, как вы предположили, вам придется указать каждый параметр отдельно, ссылаясь на глобальный. Если ваши параметры являются общими для всех операций по определенному пути, вы можете определить их на уровне пути, и они будут применяться ко всем операциям.

Для отдельной операции ее можно определить следующим образом:

"paths": {
  "/stuff": {
    "get": {
      "description": "Gets stuff",
      "operationId": "getStuff",
      "parameters": [
        {
          "$ref": "#/parameters/a"
        },
        {
          "$ref": "#/parameters/b"
        }
      ]
    }
  }
}