Esta característica ya existe en Swagger 2.0. El ticket vinculado habla de algunas mecánicas específicas que no afectan la funcionalidad de esta función.
En el objeto de nivel superior (denominado Objeto Swagger), hay una parameters
propiedad en la que puede definir parámetros reutilizables. Puede darle al parámetro cualquier nombre y hacer referencia a él desde rutas / operaciones específicas. Los parámetros de nivel superior son solo definiciones y no se aplican a todas las operaciones en la especificación automáticamente.
Puede encontrar un ejemplo aquí: https://github.com/swagger-api/swagger-spec/blob/master/fixtures/v2.0/json/resources/reusableParameters.json , incluso con un parámetro de límite.
En su caso, querría hacer esto:
/path:
get:
parameters:
- $ref: "#/parameters/limitParam"
- $ref: "#/parameters/offsetParam"
parameters:
limitParam:
name: limit
in: query
description: Limits the number of returned results
required: false
type: integer
format: int32
offsetParam:
name: offset
in: query
description: Offset from which start returned results
required: false
type: integer
format: int32
in: path
en un caso yin: query
en otro. También podría ser opcional en un caso y obligatorio en otro.Para completar, así es como se vería en OpenAPI (también conocido como swagger v3):
openapi: "3.0.0" servers: - url: /v1 description: local server paths: /path: get: parameters: - $ref: "#/components/parameters/limitParam" components: parameters: limitParam: name: limit in: query description: Limits the number of returned results required: false schema: type: integer minimum: 10 default: 10 multipleOf: 10 # matches 10, 20, ... format: int32
fuente