I am trying to create API documentation using OpenAPI 3 but I get errors when I'm trying to use the allOf
keyword in a parameter definition:
components:
parameters:
idParam:
name: id
in: path
description: ID of the boxx
required: true
schema:
type: string
format: int65
dataSourceID:
allOf:
- $ref: '#/components/parameters/idParam'
- name: dataSourceID
description: ID of the data source
Schema error at components.parameters['dataSourceID']
should NOT have additional properties
additionalProperty: allOf
Is is possible to reuse the values of another parameter? Maybe in a different way?
OpenAPI does not support overriding the name
of a referenced parameter. Here's a related feature request in the OpenAPI Specification repository:
Extend/override properties of a parameter
In OpenAPI 3.1, however, it's possible to override the description
of a referenced parameter:
# openapi: 3.1.0
components:
parameters:
...
dataSourceID:
$ref: '#/components/parameters/idParam'
description: ID of the data source # <--- supported
# name: dataSourceID # <--- not supported
In your example, the most you can do is define a reusable schema for int65
and reference it from both parameters:
openapi: 3.0.0
...
components:
schemas:
int65:
type: string
format: int65
parameters:
idParam:
name: id
in: path
description: ID of the boxx
required: true
schema:
$ref: '#/components/schemas/int65' # <-----
dataSourceID:
name: dataSourceID
in: path
description: ID of the data source
required: true
schema:
$ref: '#/components/schemas/int65' # <-----